20#ifndef _UDF_STRUCTURES_H_
21#define _UDF_STRUCTURES_H_
37struct _UDFDiskDependentFCB;
57#define UDF_NODE_TYPE_NT_REQ_FCB ((CSHORT)(0xfcb0))
58#define UDF_NODE_TYPE_OBJECT_NAME (0xfdecba01)
59#define UDF_NODE_TYPE_CCB (0xfdecba02)
60#define UDF_NODE_TYPE_FCB (0xfdecba03)
61#define UDF_NODE_TYPE_VCB (0xfdecba04)
62#define UDF_NODE_TYPE_IRP_CONTEXT (0xfdecba05)
63#define UDF_NODE_TYPE_GLOBAL_DATA (0xfdecba06)
64#define UDF_NODE_TYPE_FILTER_DEVOBJ (0xfdecba07)
65#define UDF_NODE_TYPE_UDFFS_DEVOBJ (0xfdecba08)
66#define UDF_NODE_TYPE_IRP_CONTEXT_LITE (0xfdecba09)
67#define UDF_NODE_TYPE_UDFFS_DRVOBJ (0xfdecba0a)
97#define UDF_OBJ_NAME_NOT_FROM_ZONE (0x80000000)
138#define UDF_CCB_OPENED_BY_UDF (0x00000001)
141#define UDF_CCB_OPENED_FOR_SYNC_ACCESS (0x00000002)
143#define UDF_CCB_OPENED_FOR_SEQ_ACCESS (0x00000004)
146#define UDF_CCB_CLEANED (0x00000008)
149#define UDF_CCB_ACCESSED (0x00000010)
150#define UDF_CCB_MODIFIED (0x00000020)
153#define UDF_CCB_ACCESS_TIME_SET (0x00000040)
154#define UDF_CCB_MODIFY_TIME_SET (0x00000080)
155#define UDF_CCB_CREATE_TIME_SET (0x00000100)
156#define UDF_CCB_WRITE_TIME_SET (0x00000200)
157#define UDF_CCB_ATTRIBUTES_SET (0x00020000)
159#define UDF_CCB_CASE_SENSETIVE (0x00000400)
161#ifndef UDF_READ_ONLY_BUILD
162#define UDF_CCB_DELETE_ON_CLOSE (0x00000800)
166#define UDF_CCB_VOLUME_OPEN (0x00001000)
167#define UDF_CCB_MATCH_ALL (0x00002000)
168#define UDF_CCB_WILDCARD_PRESENT (0x00004000)
169#define UDF_CCB_CAN_BE_8_DOT_3 (0x00008000)
170#define UDF_CCB_READ_ONLY (0x00010000)
173#define UDF_CCB_FLUSHED (0x20000000)
174#define UDF_CCB_VALID (0x40000000)
175#define UDF_CCB_NOT_FROM_ZONE (0x80000000)
233#define UDF_NTREQ_FCB_SD_MODIFIED (0x00000001)
234#define UDF_NTREQ_FCB_INLIST (0x00000002)
235#define UDF_NTREQ_FCB_DELETED (0x00000004)
236#define UDF_NTREQ_FCB_MODIFIED (0x00000008)
237#define UDF_NTREQ_FCB_VALID (0x40000000)
241#define UDF_FCB_MT NonPagedPool
300#define UDF_FCB_VALID (0x00000002)
302#define UDF_FCB_PAGE_FILE (0x00000004)
303#define UDF_FCB_DIRECTORY (0x00000008)
304#define UDF_FCB_ROOT_DIRECTORY (0x00000010)
305#define UDF_FCB_WRITE_THROUGH (0x00000020)
306#define UDF_FCB_MAPPED (0x00000040)
307#define UDF_FCB_FAST_IO_READ_IN_PROGESS (0x00000080)
308#define UDF_FCB_FAST_IO_WRITE_IN_PROGESS (0x00000100)
309#define UDF_FCB_DELETE_ON_CLOSE (0x00000200)
310#define UDF_FCB_MODIFIED (0x00000400)
311#define UDF_FCB_ACCESSED (0x00000800)
312#define UDF_FCB_READ_ONLY (0x00001000)
313#define UDF_FCB_DELAY_CLOSE (0x00002000)
314#define UDF_FCB_DELETED (0x00004000)
316#define UDF_FCB_INITIALIZED_CCB_LIST_RESOURCE (0x00008000)
317#define UDF_FCB_POSTED_RENAME (0x00010000)
319#define UDF_FCB_DELETE_PARENT (0x10000000)
320#define UDF_FCB_NOT_FROM_ZONE (0x80000000)
336#define UDF_RESIDUAL_REFERENCE (2)
339#define UDF_FLUSH_FLAGS_BREAKABLE (0x00000001)
341#define UDF_FLUSH_FLAGS_LITE (0x80000000)
343#define UDF_FLUSH_FLAGS_INTERRUPTED (0x00000001)
345#define UDF_MAX_BG_WRITERS 16
385#define UDF_IRP_CONTEXT_CAN_BLOCK (0x00000001)
386#define UDF_IRP_CONTEXT_WRITE_THROUGH (0x00000002)
387#define UDF_IRP_CONTEXT_EXCEPTION (0x00000004)
388#define UDF_IRP_CONTEXT_DEFERRED_WRITE (0x00000008)
389#define UDF_IRP_CONTEXT_ASYNC_PROCESSING (0x00000010)
390#define UDF_IRP_CONTEXT_NOT_TOP_LEVEL (0x00000020)
391#define UDF_IRP_CONTEXT_FLAG_DISABLE_POPUPS (0x00000040)
392#define UDF_IRP_CONTEXT_FLUSH_REQUIRED (0x00000080)
393#define UDF_IRP_CONTEXT_FLUSH2_REQUIRED (0x00000100)
394#define UDF_IRP_CONTEXT_READ_ONLY (0x00010000)
395#define UDF_IRP_CONTEXT_RES1_ACQ (0x01000000)
396#define UDF_IRP_CONTEXT_RES2_ACQ (0x02000000)
397#define UDF_IRP_CONTEXT_FORCED_POST (0x20000000)
398#define UDF_IRP_CONTEXT_BUFFER_LOCKED (0x40000000)
399#define UDF_IRP_CONTEXT_NOT_FROM_ZONE (0x80000000)
428#define UDF_DEFAULT_ZONE_SIZE_SMALL_SYSTEM (0x4)
429#define UDF_DEFAULT_ZONE_SIZE_MEDIUM_SYSTEM (0x8)
430#define UDF_DEFAULT_ZONE_SIZE_LARGE_SYSTEM (0xc)
437#define UDF_NTAS_MULTIPLE (0x2)
489#define DIRTY_PAGE_LIMIT 32
struct _GET_LAST_ERROR_USER_OUT GET_LAST_ERROR_USER_OUT
union _GET_EVENT_USER_OUT GET_EVENT_USER_OUT
struct _GET_CAPABILITIES_USER_OUT GET_CAPABILITIES_USER_OUT
struct _FILESYSTEM_STATISTICS FILESYSTEM_STATISTICS
struct _UDFFileControlBlock UDFFCB
struct _UDFObjectName UDFObjectName
struct _UDFObjectName * PtrUDFObjectName
struct _UDFFS_DEV_EXTENSION UDFFS_DEV_EXTENSION
struct _UDFBGWriteContext * PUDFBGWriteContext
struct _UDFFileControlBlock * PtrUDFFCB
struct _FILTER_DEV_EXTENSION * PFILTER_DEV_EXTENSION
struct _UDFEjectWaitContext UDFEjectWaitContext
struct _UDFEjectWaitContext * PUDFEjectWaitContext
struct _UDFIrpContext * PtrUDFIrpContext
struct _UDFNTRequiredFCB * PtrUDFNTRequiredFCB
struct _UDFIdentifier UDFIdentifier
struct _UDFIrpContext UDFIrpContext
struct _UDFIdentifier * PtrUDFIdentifier
struct _UDFBGWriteContext UDFBGWriteContext
struct _UDFContextControlBlock * PtrUDFCCB
struct _UDFContextControlBlock UDFCCB
struct _UDFIrpContextLite * PtrUDFIrpContextLite
struct _UDFFS_DEV_EXTENSION * PUDFFS_DEV_EXTENSION
struct _FILTER_DEV_EXTENSION FILTER_DEV_EXTENSION
struct _UDFFileIDCacheItem * PUDFFileIDCacheItem
struct _FILE_SYSTEM_STATISTICS * PFILE_SYSTEM_STATISTICS
struct _FILE_SYSTEM_STATISTICS FILE_SYSTEM_STATISTICS
struct _UDFIrpContextLite UDFIrpContextLite
struct _UDFNTRequiredFCB UDFNTRequiredFCB
struct _UDFFileIDCacheItem UDFFileIDCacheItem
FILESYSTEM_STATISTICS Common
UCHAR Pad[((FILE_SYSTEM_STATISTICS_WITHOUT_PAD+0x3f) &~0x3f) - FILE_SYSTEM_STATISTICS_WITHOUT_PAD]
PDEVICE_OBJECT lowerFSDeviceObject
UDFIdentifier NodeIdentifier
WORK_QUEUE_ITEM WorkQueueItem
UDFIdentifier NodeIdentifier
ACCESS_MASK PreviouslyGrantedAccess
PUNICODE_STRING DirectorySearchPattern
struct _UDFFileControlBlock * Fcb
WORK_QUEUE_ITEM EjectReqWorkQueueItem
UCHAR PaddingEvt[(0x40 - sizeof(GET_EVENT_USER_OUT)) &0x0f]
GET_EVENT_USER_OUT EjectReqBuffer
UCHAR PaddingDevCap[(0x40 - sizeof(GET_CAPABILITIES_USER_OUT)) &0x0f]
GET_CAPABILITIES_USER_OUT DevCap
UCHAR PaddingError[(0x40 - sizeof(GET_LAST_ERROR_USER_OUT)) &0x0f]
GET_LAST_ERROR_USER_OUT Error
UDFIdentifier NodeIdentifier
struct _UDFVolumeControlBlock * Vcb
ERESOURCE CcbListResource
struct _UDFIrpContextLite * IrpContextLite
struct _UDFFileControlBlock * ParentFcb
PtrUDFNTRequiredFCB NTRequiredFCB
uint32 CachedOpenHandleCount
UDFIdentifier NodeIdentifier
LIST_ENTRY DelayedCloseLinks
PDEVICE_OBJECT RealDevice
_UDFFileControlBlock * Fcb
UDFIdentifier NodeIdentifier
UDFIdentifier NodeIdentifier
_UDFFileControlBlock * Fcb
WORK_QUEUE_ITEM WorkQueueItem
PDEVICE_OBJECT TargetDeviceObject
NTSTATUS SavedExceptionCode
LARGE_INTEGER CreationTime
PSECURITY_DESCRIPTOR SecurityDesc
LARGE_INTEGER LastWriteTime
SHARE_ACCESS FCBShareAccess
ERESOURCE PagingIoResource
LARGE_INTEGER LastAccessTime
uint32 LazyWriterThreadID
SECTION_OBJECT_POINTERS SectionObject
FSRTL_COMMON_FCB_HEADER CommonFCBHeader
UDFIdentifier NodeIdentifier
UNICODE_STRING ObjectName
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject