6#ifndef __UDF_COMMON_STRUCT__H__
7#define __UDF_COMMON_STRUCT__H__
21#define MAX_UDFFSD_MEDIA_TYPE ((ULONG)MediaFloppy)
35#define MAX_ANCHOR_LOCATIONS 11
36#define MAX_SPARING_TABLE_LOCATIONS 32
40#ifdef _UDF_STRUCTURES_H_
139 ULONG PostedRequestCount;
143 ULONG OverflowQueueCount;
150 ULONG StopOverflowQueue;
151 ULONG SystemCacheGran;
164 ULONG Tree_FlushTime;
165 ULONG Tree_FlushPriod;
166 ULONG SkipCountLimit;
167 ULONG SkipEjectCountLimit;
179 ULONG MediaLockCount;
193 #ifdef UDF_FORMAT_MEDIA
194 struct _UDFFmtState*
fms;
277#define SYNC_CACHE_RECOVERY_NONE 0
278#define SYNC_CACHE_RECOVERY_ATTEMPT 1
279#define SYNC_CACHE_RECOVERY_RETRY 2
301#define INCREMENTAL_SEEK_NONE 0
302#define INCREMENTAL_SEEK_WORKAROUND 1
303#define INCREMENTAL_SEEK_DONE 2
327 ULONG BadSeqLocIndex;
331 int64 VolCreationTime;
359 ULONG SparingCountFree;
361 ULONG SparingBlockSize;
365 uint32 SparingTableLength;
366 uint32 SparingTableModified;
368 ULONG FSBM_ByteCount;
372#ifdef UDF_TRACK_ONDISK_ALLOCATION_OWNERS
373 PULONG FSBM_Bitmap_owners;
376#ifdef UDF_TRACK_FS_STRUCTURES
382 PCHAR FSBM_OldBitmap;
383 ULONG BitmapModified;
425 UCHAR PartitialDamagedVolumeAction;
426 BOOLEAN NoFreeRelocationSpaceVolumeAction;
435 ULONG PackDirThreshold;
436 ULONG SparseThreshold;
439 ULONG FEChargeCacheMaxSize;
442 ULONG PreallocCacheMaxSize;
459#define UDF_VCB_FLAGS_VOLUME_MOUNTED (0x00000001)
460#define UDF_VCB_FLAGS_VOLUME_LOCKED (0x00000002)
461#define UDF_VCB_FLAGS_BEING_DISMOUNTED (0x00000004)
462#define UDF_VCB_FLAGS_SHUTDOWN (0x00000008)
463#define UDF_VCB_FLAGS_VOLUME_READ_ONLY (0x00000010)
465#define UDF_VCB_FLAGS_VCB_INITIALIZED (0x00000020)
466#define UDF_VCB_FLAGS_OUR_DEVICE_DRIVER (0x00000040)
467#define UDF_VCB_FLAGS_NO_SYNC_CACHE (0x00000080)
468#define UDF_VCB_FLAGS_REMOVABLE_MEDIA (0x00000100)
469#define UDF_VCB_FLAGS_MEDIA_LOCKED (0x00000200)
470#define UDF_VCB_SKIP_EJECT_CHECK (0x00000400)
472#define UDF_VCB_LAST_WRITE (0x00001000)
473#define UDF_VCB_FLAGS_TRACKMAP (0x00002000)
474#define UDF_VCB_ASSUME_ALL_USED (0x00004000)
476#define UDF_VCB_FLAGS_RAW_DISK (0x00040000)
477#define UDF_VCB_FLAGS_USE_STD (0x00080000)
479#define UDF_VCB_FLAGS_STOP_WAITER_EVENT (0x00100000)
480#define UDF_VCB_FLAGS_NO_DELAYED_CLOSE (0x00200000)
481#define UDF_VCB_FLAGS_MEDIA_READ_ONLY (0x00400000)
483#define UDF_VCB_FLAGS_FLUSH_BREAK_REQ (0x01000000)
484#define UDF_VCB_FLAGS_EJECT_REQ (0x02000000)
485#define UDF_VCB_FLAGS_FORCE_SYNC_CACHE (0x04000000)
487#define UDF_VCB_FLAGS_USE_CAV (0x08000000)
488#define UDF_VCB_FLAGS_UNSAFE_IOCTL (0x10000000)
489#define UDF_VCB_FLAGS_DEAD (0x20000000)
493#define UDF_VCB_IC_UPDATE_ACCESS_TIME (0x00000001)
494#define UDF_VCB_IC_UPDATE_MODIFY_TIME (0x00000002)
495#define UDF_VCB_IC_UPDATE_ATTR_TIME (0x00000004)
496#define UDF_VCB_IC_UPDATE_ARCH_BIT (0x00000008)
497#define UDF_VCB_IC_UPDATE_DIR_WRITE (0x00000010)
498#define UDF_VCB_IC_UPDATE_DIR_READ (0x00000020)
499#define UDF_VCB_IC_WRITE_IN_RO_DIR (0x00000040)
500#define UDF_VCB_IC_UPDATE_UCHG_DIR_ACCESS_TIME (0x00000080)
501#define UDF_VCB_IC_W2K_COMPAT_ALLOC_DESCS (0x00000100)
502#define UDF_VCB_IC_HW_RO (0x00000200)
503#define UDF_VCB_IC_OS_NATIVE_DOS_NAME (0x00000400)
504#define UDF_VCB_IC_FORCE_WRITE_THROUGH (0x00000800)
505#define UDF_VCB_IC_FORCE_HW_RO (0x00001000)
506#define UDF_VCB_IC_IGNORE_SEQUENTIAL_IO (0x00002000)
507#define UDF_VCB_IC_NO_SYNCCACHE_AFTER_WRITE (0x00004000)
508#define UDF_VCB_IC_BAD_RW_SEEK (0x00008000)
509#define UDF_VCB_IC_FP_ADDR_PROBLEM (0x00010000)
510#define UDF_VCB_IC_MRW_ADDR_PROBLEM (0x00020000)
511#define UDF_VCB_IC_BAD_DVD_LAST_LBA (0x00040000)
512#define UDF_VCB_IC_SYNCCACHE_BEFORE_READ (0x00080000)
513#define UDF_VCB_IC_INSTANT_COMPAT_ALLOC_DESCS (0x00100000)
514#define UDF_VCB_IC_SOFT_RO (0x00200000)
516#define UDF_VCB_IC_DIRTY_RO (0x04000000)
517#define UDF_VCB_IC_W2K_COMPAT_VLABEL (0x08000000)
518#define UDF_VCB_IC_CACHE_BAD_VDS (0x10000000)
519#define UDF_VCB_IC_WAIT_CD_SPINUP (0x20000000)
520#define UDF_VCB_IC_SHOW_BLANK_CD (0x40000000)
521#define UDF_VCB_IC_ADAPTEC_NONALLOC_COMPAT (0x80000000)
524#define UDFIsDvdMedia(Vcb) (Vcb->DVD_Mode)
525#define UDFIsWriteParamsReq(Vcb) (Vcb->WriteParamsReq && !Vcb->DVD_Mode)
535#ifdef _UDF_STRUCTURES_H_
570 VOID *ObjectNameZone;
573 VOID *IrpContextZone;
582 uint32 DefaultZoneSizeInNumStructs;
592 ULONG MaxDelayedCloseCount;
593 ULONG DelayedCloseCount;
594 ULONG MinDelayedCloseCount;
595 ULONG MaxDirDelayedCloseCount;
596 ULONG DirDelayedCloseCount;
597 ULONG MinDirDelayedCloseCount;
634#define UDF_DATA_FLAGS_RESOURCE_INITIALIZED (0x00000001)
635#define UDF_DATA_FLAGS_ZONES_INITIALIZED (0x00000002)
636#define UDF_DATA_FLAGS_BEING_UNLOADED (0x00000004)
653#define FILE_ID_CACHE_GRANULARITY 16
654#define DLOC_LIST_GRANULARITY 16
IN OUT PVCB IN PDEVICE_OBJECT IN PVPB Vpb
UNICODE_STRING SavedRegPath
ULONG WCacheFramesToKeepFree
ULONG WCacheBlocksPerFrameSh
UNICODE_STRING UnicodeStrSDir
UNICODE_STRING UnicodeStrRoot
ERESOURCE BitMapResource1
PGET_WRITE_MODE_USER_OUT WParams
PDEVICE_OBJECT TargetDeviceObject
UCHAR IncrementalSeekState
ERESOURCE PreallocResource
BOOLEAN DoNotCompareBeforeWrite
ULONG WCacheBlocksPerFrameSh
ULONG FirstTrackNumLastSes
PSEND_OPC_INFO_HEADER_USER_IN OPCh
ULONG CdrwBufferSizeCounter
PGET_LAST_ERROR_USER_OUT Error
ULONG WCacheFramesToKeepFree
SET_CD_SPEED_EX_USER_IN SpeedBuf
LONGLONG EstimatedFreeUnits
struct _UDFTrackMap * TrackMap
struct _UDF_KEY_LIST UDF_KEY_LIST
VOID UDFPreClrModified(IN PVCB Vcb)
VOID UDFSetModified(IN PVCB Vcb)
struct _UDFData * PtrUDFData
#define MAX_SPARING_TABLE_LOCATIONS
enum _UDFFSD_MEDIA_TYPE UDFFSD_MEDIA_TYPE
#define MAX_ANCHOR_LOCATIONS
struct _UDFVolumeControlBlock VCB
struct _UDFVolumeControlBlock * PVCB
struct _UDF_KEY_LIST * PUDF_KEY_LIST
struct UDF_MEDIA_CLASS_NAMES UDFMediaClassName[]
VOID UDFClrModified(IN PVCB Vcb)
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject