26#ifdef UDF_LIMIT_DIR_SIZE
43#define TrackMap_AllowCopyBit_variated 0x01
44#define TrackMap_CopyBit_variated 0x02
45#define TrackMap_Try_variation 0x04
46#define TrackMap_Use_variation 0x08
47#define TrackMap_FixFPAddressing 0x10
48#define TrackMap_FixMRWAddressing 0x20
62#define PACK_MAPPING_THRESHOLD (sizeof(EXTENT_MAP)*8)
76#define EXTENT_FLAG_ALLOC_STD 0x00
77#define EXTENT_FLAG_ALLOC_SEQUENTIAL 0x01
78#define EXTENT_FLAG_ALLOC_MASK 0x03
79#define EXTENT_FLAG_PREALLOCATED 0x80
80#define EXTENT_FLAG_CUT_PREALLOCATED 0x40
81#define EXTENT_FLAG_VERIFY 0x20
82#define EXTENT_FLAG_2K_COMPAT 0x10
97#define VDS_POS_PRIMARY_VOL_DESC 0
98#define VDS_POS_UNALLOC_SPACE_DESC 1
99#define VDS_POS_LOGICAL_VOL_DESC 2
100#define VDS_POS_PARTITION_DESC 3
101#define VDS_POS_IMP_USE_VOL_DESC 4
102#define VDS_POS_VOL_DESC_PTR 5
103#define VDS_POS_TERMINATING_DESC 6
104#define VDS_POS_RECURSION_COUNTER 7
105#define VDS_POS_LENGTH 8
112#define VRS_NSR02_FOUND 0x0001
113#define VRS_NSR03_FOUND 0x0002
114#define VRS_ISO9660_FOUND 0x0004
116#define EXTENT_MAP_GRAN (8*sizeof(LONG_AD))
117#define DIR_INDEX_MAP_GRAN (8*sizeof(DIR_INDEX))
118#define SHORT_AD_GRAN (8*sizeof(SHORT_AD))
119#define RELOC_MAP_GRAN (8*sizeof(EXT_RELOCATION_ENTRY))
120#define ALLOC_DESC_MAX_RECURSE 256
125#define UDF_DIR_INDEX_MT PagedPool
126#define UDF_FILENAME_MT PagedPool
147#define UDF_DI_FLAG_INIT_IN_ICB (0x01)
217#define UDF_FI_FLAG_FI_MODIFIED (0x01)
219#define UDF_FI_FLAG_SYS_ATTR (0x02)
221#define UDF_FI_FLAG_FI_INTERNAL (0x04)
223#define UDF_FI_FLAG_LINKED (0x08)
225#define UDF_FI_FLAG_DOS (0x10)
226#define UDF_FI_FLAG_KEEP_NAME (0x20)
228#define UDF_DATALOC_INFO_MT PagedPool
323#define UDF_FE_FLAG_FE_MODIFIED (0x01)
325#define UDF_FE_FLAG_HAS_SDIR (0x02)
327#define UDF_FE_FLAG_IS_SDIR (0x04)
329#define UDF_FE_FLAG_DIR_MODIFIED (0x08)
331#define UDF_FE_FLAG_HAS_DEL_SDIR (0x10)
333#define UDF_FE_FLAG_IS_DEL_SDIR (0x20)
335#define UDF_FE_FLAG_UNDER_INIT (0x40)
338#define UDF_FILE_INFO_MT PagedPool
347#ifdef VALIDATE_STRUCTURES
419#define DOS_NAME_LEN 8
421#define ILLEGAL_CHAR_MARK 0x005F
422#define UNICODE_CRC_MARK 0x0023
423#define UNICODE_PERIOD 0x002E
424#define UNICODE_SPACE 0x0020
426#define LBA_OUT_OF_EXTENT ((ULONG)(-1))
427#define LBA_NOT_ALLOCATED ((ULONG)(-2))
479#define MEM_DIR_HDR_TAG 'DirH'
480#define MEM_DIR_NDX_TAG 'DirN'
481#define MEM_DLOC_NDX_TAG 'Dloc'
482#define MEM_DLOC_INF_TAG 'Dloc'
483#define MEM_FNAME_TAG 'FNam'
484#define MEM_FNAME16_TAG 'FNam'
485#define MEM_FNAMECPY_TAG 'FNam'
486#define MEM_FE_TAG 'FE'
487#define MEM_XFE_TAG 'xFE"'
488#define MEM_FID_TAG 'FID'
489#define MEM_FINF_TAG 'FInf'
490#define MEM_VATFINF_TAG 'FInf'
491#define MEM_SDFINF_TAG 'SDir'
492#define MEM_EXTMAP_TAG 'ExtM'
493#define MEM_ALLOCDESC_TAG 'Allo'
494#define MEM_SHAD_TAG 'SHAD'
495#define MEM_LNGAD_TAG 'LNGA'
496#define MEM_ALLOC_CACHE_TAG 'hcCA'
498#define UDF_DEFAULT_LAST_LBA_CD 276159
499#define UDF_DEFAULT_LAST_LBA_DVD 0x23053f
500#define UDF_DEFAULT_FE_CHARGE 128
501#define UDF_DEFAULT_FE_CHARGE_SDIR 1
502#define UDF_WRITE_MAX_RETRY 4
503#define UDF_READ_MAX_RETRY 4
504#define UDF_READY_MAX_RETRY 5
506#define ICB_FLAG_AD_DEFAULT_ALLOC_MODE (UCHAR)(0xff)
508#define UDF_INVALID_LINK_COUNT 0xffff
509#define UDF_MAX_LINK_COUNT 0x7fff
511#define UDF_MAX_EXTENT_LENGTH (UDF_EXTENT_LENGTH_MASK & ~(2048-1))
513#define UDF_MAX_READ_REVISION 0x0260
514#define UDF_MAX_WRITE_REVISION 0x0201
516#define UDF_MAX_LVID_CHAIN_LENGTH 1024
517#define UDF_LVID_TTL 1024
519#define UDF_NO_EXTENT_MAP ((PEXTENT_MAP)(ULONG_PTR)~0ULL)
521#define UDF_FLUSH_FLAGS_LITE (0x80000000)
523#if defined UDF_DBG || defined _CONSOLE
524//#define UDF_CHECK_DISK_ALLOCATION
526//#define UDF_TRACK_ONDISK_ALLOCATION
528//#define UDF_TRACK_ONDISK_ALLOCATION_OWNERS
529//#define UDF_TRACK_ONDISK_ALLOCATION_OWNERS_INTERNAL
531//#define UDF_TRACK_EXTENT_TO_MAPPING
533//#define UDF_TRACK_ALLOC_FREE_EXTENT
535//#define UDF_CHECK_EXTENT_SIZE_ALIGNMENT
539#ifdef UDF_TRACK_ALLOC_FREE_EXTENT
540 #define UDF_TRACK_EXTENT_TO_MAPPING
541#endif //UDF_TRACK_ALLOC_FREE_EXTENT
545typedef struct _UDF_VERIFY_CTX {
549 ERESOURCE VerifyLock;
554} UDF_VERIFY_CTX, *PUDF_VERIFY_CTX;
556#endif /* _UDF_REL_H_ */
struct _UDF_FILE_INFO * FileInfo
uint8 FileCharacteristics
struct _UDF_FILE_INFO * SDirInfo
struct _UDFNTRequiredFCB * CommonFcb
struct _UDF_FILE_INFO * LinkedFileInfo
struct _FE_LIST_ENTRY * ListPtr
struct _UDF_FILE_INFO * PrevLinkedFile
struct _UDFFileControlBlock * Fcb
struct _UDF_FILE_INFO * ParentFile
PFILE_IDENT_DESC FileIdent
struct _UDF_FILE_INFO * NextLinkedFile
struct _DIR_INDEX_HDR * PDIR_INDEX_HDR
struct _FE_LIST_ENTRY FE_LIST_ENTRY
struct _UDFPartMap UDFPartMap
PEXT_RELOCATION_ENTRY PEXT_RELOC_MAP
struct _UDF_DATALOC_INDEX UDF_DATALOC_INDEX
struct _UDFPartMap * PUDFPartMap
struct _UDF_DATALOC_INFO UDF_DATALOC_INFO
struct _UDFSparingData UDFSparingData
struct _UDFTrackMap UDFTrackMap
struct _DIR_INDEX_ITEM * PDIR_INDEX_ITEM
struct _EXTENT_INFO * PEXTENT_INFO
EXT_RELOCATION_ENTRY EXT_RELOC_MAP
struct _UDF_ALLOCATION_CACHE_ITEM UDF_ALLOCATION_CACHE_ITEM
struct _FE_LIST_ENTRY * PFE_LIST_ENTRY
struct _UDF_DIR_SCAN_CONTEXT UDF_DIR_SCAN_CONTEXT
struct _UDF_DIR_SCAN_CONTEXT * PUDF_DIR_SCAN_CONTEXT
struct _HASH_ENTRY HASH_ENTRY
struct _UDF_DATALOC_INDEX * PUDF_DATALOC_INDEX
struct _DIR_INDEX_HDR DIR_INDEX_HDR
struct _UDF_FILE_INFO UDF_FILE_INFO
struct _UDF_VDS_RECORD UDF_VDS_RECORD
struct _UDFSparingData * PUDFSparingData
struct _UDFTrackMap * PUDFTrackMap
struct _UDF_VDS_RECORD * PUDF_VDS_RECORD
struct _EXT_RELOCATION_ENTRY * PEXT_RELOCATION_ENTRY
struct _UDF_ALLOCATION_CACHE_ITEM * PUDF_ALLOCATION_CACHE_ITEM
struct _EXTENT_INFO EXTENT_INFO
struct _DIR_INDEX_ITEM DIR_INDEX_ITEM
struct _EXT_RELOCATION_ENTRY EXT_RELOCATION_ENTRY
struct _HASH_ENTRY * PHASH_ENTRY
struct _UDF_FILE_INFO * PUDF_FILE_INFO
struct _UDF_DATALOC_INFO * PUDF_DATALOC_INFO