22#define UDF_COMP_ID_8 0x08
23#define UDF_COMP_ID_16 0x10
52#define TIMESTAMP_TYPE_CUT 0x0000U
53#define TIMESTAMP_TYPE_LOCAL 0x0001U
54#define TIMESTAMP_TYPE_AGREEMENT 0x0002U
55#define TIMESTAMP_OFFSET_MASK 0x0FFFU
56#define TIMESTAMP_NO_OFFSET 0x0800U
67#define ENTITYID_FLAGS_DIRTY 0x01U
68#define ENTITYID_FLAGS_PROTECTED 0x02U
80#define STD_ID_BEA01 "BEA01"
81#define STD_ID_BOOT2 "BOOT2"
82#define STD_ID_CD001 "CD001"
83#define STD_ID_CDW02 "CDW02"
84#define STD_ID_NSR02 "NSR02"
85#define STD_ID_NSR03 "NSR03"
86#define STD_ID_TEA01 "TEA01"
123#define BOOT_FLAGS_ERASE 1
153#define TID_UNUSED_DESC 0x0000U
154#define TID_PRIMARY_VOL_DESC 0x0001U
155#define TID_ANCHOR_VOL_DESC_PTR 0x0002U
156#define TID_VOL_DESC_PTR 0x0003U
157#define TID_IMP_USE_VOL_DESC 0x0004U
158#define TID_PARTITION_DESC 0x0005U
159#define TID_LOGICAL_VOL_DESC 0x0006U
160#define TID_UNALLOC_SPACE_DESC 0x0007U
161#define TID_TERMINATING_DESC 0x0008U
162#define TID_LOGICAL_VOL_INTEGRITY_DESC 0x0009U
165#define TID_FILE_SET_DESC 0x0100U
166#define TID_FILE_IDENT_DESC 0x0101U
167#define TID_ALLOC_EXTENT_DESC 0x0102U
168#define TID_INDIRECT_ENTRY 0x0103U
169#define TID_TERMINAL_ENTRY 0x0104U
170#define TID_FILE_ENTRY 0x0105U
171#define TID_EXTENDED_ATTRE_HEADER_DESC 0x0106U
172#define TID_UNALLOCATED_SPACE_ENTRY 0x0107U
173#define TID_SPACE_BITMAP_DESC 0x0108U
174#define TID_PARTITION_INTEGRITY_ENTRY 0x0109U
175#define TID_EXTENDED_FILE_ENTRY 0x010AU
213#define VOL_SET_IDENT 1
231#define MAX_VDS_PARTS 32
258#define PARTITION_FLAGS_ALLOC 1
261#define PARTITION_CONTENTS_FDC01 "+FDC01"
262#define PARTITION_CONTENTS_CD001 "+CD001"
263#define PARTITION_CONTENTS_CDW02 "+CDW02"
264#define PARTITION_CONTENTS_NSR02 "+NSR02"
265#define PARTITION_CONTENTS_NSR03 "+NSR03"
268#define PARTITION_ACCESS_NONE 0
269#define PARTITION_ACCESS_R 1
270#define PARTITION_ACCESS_WO 2
271#define PARTITION_ACCESS_RW 3
272#define PARTITION_ACCESS_OW 4
273#define PARTITION_ACCESS_MAX_KNOWN PARTITION_ACCESS_OW
300#define PARTITION_MAP_TYPE_NONE 0
301#define PARTITION_MAP_TYPE_1 1
302#define PARTITION_MAP_TYPE_2 2
357#define INTEGRITY_TYPE_OPEN 0
358#define INTEGRITY_TYPE_CLOSE 1
367#define EXTENT_RECORDED_ALLOCATED 0x00
368#define EXTENT_NOT_RECORDED_ALLOCATED 0x01
369#define EXTENT_NOT_RECORDED_NOT_ALLOCATED 0x02
370#define EXTENT_NEXT_EXTENT_ALLOCDESC 0x03
438#define FILE_HIDDEN 0x01
439#define FILE_DIRECTORY 0x02
440#define FILE_DELETED 0x04
441#define FILE_PARENT 0x08
442#define FILE_METADATA 0x10
464#define UDF_FILE_TYPE_NONE 0x00U
465#define UDF_FILE_TYPE_UNALLOC 0x01U
466#define UDF_FILE_TYPE_INTEGRITY 0x02U
467#define UDF_FILE_TYPE_INDIRECT 0x03U
468#define UDF_FILE_TYPE_DIRECTORY 0x04U
469#define UDF_FILE_TYPE_REGULAR 0x05U
470#define UDF_FILE_TYPE_BLOCK 0x06U
471#define UDF_FILE_TYPE_CHAR 0x07U
472#define UDF_FILE_TYPE_EXTENDED 0x08U
473#define UDF_FILE_TYPE_FIFO 0x09U
474#define UDF_FILE_TYPE_SOCKET 0x0aU
475#define UDF_FILE_TYPE_TERMINAL 0x0bU
476#define UDF_FILE_TYPE_SYMLINK 0x0cU
477#define UDF_FILE_TYPE_STREAMDIR 0x0dU
480#define ICB_FLAG_ALLOC_MASK 0x0007U
481#define ICB_FLAG_SORTED 0x0008U
482#define ICB_FLAG_NONRELOCATABLE 0x0010U
483#define ICB_FLAG_ARCHIVE 0x0020U
484#define ICB_FLAG_SETUID 0x0040U
485#define ICB_FLAG_SETGID 0x0080U
486#define ICB_FLAG_STICKY 0x0100U
487#define ICB_FLAG_CONTIGUOUS 0x0200U
488#define ICB_FLAG_SYSTEM 0x0400U
489#define ICB_FLAG_TRANSFORMED 0x0800U
490#define ICB_FLAG_MULTIVERSIONS 0x1000U
493#define ICB_FLAG_AD_SHORT 0
494#define ICB_FLAG_AD_LONG 1
495#define ICB_FLAG_AD_EXTENDED 2
496#define ICB_FLAG_AD_IN_ICB 3
540#define PERM_O_EXEC 0x00000001U
541#define PERM_O_WRITE 0x00000002U
542#define PERM_O_READ 0x00000004U
543#define PERM_O_CHATTR 0x00000008U
544#define PERM_O_DELETE 0x00000010U
545#define PERM_G_EXEC 0x00000020U
546#define PERM_G_WRITE 0x00000040U
547#define PERM_G_READ 0x00000080U
548#define PERM_G_CHATTR 0x00000100U
549#define PERM_G_DELETE 0x00000200U
550#define PERM_U_EXEC 0x00000400U
551#define PERM_U_WRITE 0x00000800U
552#define PERM_U_READ 0x00001000U
553#define PERM_U_CHATTR 0x00002000U
554#define PERM_U_DELETE 0x00004000U
557#define RECORD_FMT_NONE 0
558#define RECORD_FMT_FIXED_PAD 1
559#define RECORD_FMT_FIXED 2
560#define RECORD_FMT_VARIABLE8 3
561#define RECORD_FMT_VARIABLE16 4
562#define RECORD_FMT_VARIABLE16_MSB 5
563#define RECORD_FMT_VARIABLE32 6
564#define RECORD_FMT_PRINT 7
565#define RECORD_FMT_LF 8
566#define RECORD_FMT_CR 9
567#define RECORD_FMT_CRLF 10
568#define RECORD_FMT_LFCR 10
620#define FTE_CREATION 0
621#define FTE_DELETION 2
622#define FTE_EFFECTIVE 3
670#define EXTATTR_CHAR_SET 1
671#define EXTATTR_ALT_PERMS 3
672#define EXTATTR_FILE_TIMES 5
673#define EXTATTR_INFO_TIMES 6
674#define EXTATTR_DEV_SPEC 12
675#define EXTATTR_IMP_USE 2048
676#define EXTATTR_APP_USE 65536
708#define INTEGRITY_TYPE_STABLE 2
734#define COMPONENT_TYPE_ROOT_X 0x01
735#define COMPONENT_TYPE_ROOT 0x02
736#define COMPONENT_TYPE_PARENT 0x03
737#define COMPONENT_TYPE_CURENT 0x04
738#define COMPONENT_TYPE_OBJECT 0x05
struct _EXTENDED_FILE_ENTRY EXTENDED_FILE_ENTRY
struct _EXTENT_AD * PEXTENT_AD
struct _ALLOC_EXT_DESC ALLOC_EXT_DESC
struct _PARTITION_HEADER_DESC PARTITION_HEADER_DESC
struct _SHORT_AD * PSHORT_AD
struct _SPACE_BITMAP_DESC * PSPACE_BITMAP_DESC
struct _FILE_ENTRY FILE_ENTRY
struct _BootDesc BootDesc
struct _ALLOC_EXT_DESC * PALLOC_EXT_DESC
struct _FILE_IDENT_DESC * PFILE_IDENT_DESC
struct _FILE_IDENT_DESC FILE_IDENT_DESC
struct _SPACE_BITMAP_DESC SPACE_BITMAP_DESC
struct _SHORT_AD SHORT_AD
struct _FILE_SET_DESC * PFILE_SET_DESC
UDF_TIME_STAMP * PUDF_TIME_STAMP
struct _EXTENT_AD EXTENT_AD
SPACE_BITMAP_DESC SpaceBitmapDesc
struct _EXTENDED_FILE_ENTRY * PEXTENDED_FILE_ENTRY
struct _UNALLOC_SPACE_DESC * PUNALLOC_SPACE_DESC
struct _FILE_ENTRY * PFILE_ENTRY
UNALLOC_SPACE_DESC UnallocatedSpaceDesc
struct _FILE_SET_DESC FILE_SET_DESC
struct _PARTITION_HEADER_DESC * PPARTITION_HEADER_DESC
struct _UNALLOC_SPACE_DESC UNALLOC_SPACE_DESC
struct _BootDesc * PBootDesc
EXTENDED_FILE_ENTRY ExtendedFileEntry
extent_ad reserveVolDescSeqExt
extent_ad mainVolDescSeqExt
uint8 stdIdent[STD_ID_LEN]
extent_ad integritySeqExt
uint8 logicalVolContentsUse[16]
dstring logicalVolIdent[128]
timestamp recordingDateAndTime
uint8 logicalVolContentsUse[32]
extent_ad nextIntegrityExt
uint8 stdIdent[STD_ID_LEN]
uint32 partitionStartingLocation
EntityID partitionContents
uint8 partitionContentsUse[128]
timestamp recordingDateAndTime
uint16 componentFileVersionNum
uint8 lengthComponentIdent
uint32 predecessorVolDescSeqLocation
timestamp recordingDateAndTime
charspec explanatoryCharSet
uint8 stdIdent[STD_ID_LEN]
extent_ad nextVolDescSeqExt
uint8 stdIdent[STD_ID_LEN]
uint32 previousAllocExtLocation
timestamp descCreationDateAndTime
uint8 stdIdent[STD_ID_LEN]
EntityID architectureType
timestamp modificationTime
uint64 logicalBlocksRecorded
uint32 lengthExtendedAttr
long_ad streamDirectoryICB
uint32 lengthExtendedAttr
timestamp modificationTime
uint64 logicalBlocksRecorded
uint8 fileCharacteristics
dstring abstractFileIdent[32]
dstring copyrightFileIdent[32]
timestamp recordingDateAndTime
dstring logicalVolIdent[128]
charspec logicalVolIdentCharSet
long_ad streamDirectoryICB
uint32 priorRecordedNumDirectEntries
lb_addr parentICBLocation
uint16 partitionReferenceNum
uint8 hundredsOfMicroseconds
_In_ ULONG _In_ ULONG_PTR ident