10 #define FSRTL_COMMON_FCB_HEADER_LAYOUT \ 11 CSHORT NodeTypeCode; \ 12 CSHORT NodeByteSize; \ 14 UCHAR IsFastIoPossible; \ 18 PERESOURCE Resource; \ 19 PERESOURCE PagingIoResource; \ 20 LARGE_INTEGER AllocationSize; \ 21 LARGE_INTEGER FileSize; \ 22 LARGE_INTEGER ValidDataLength; 36 #if (NTDDI_VERSION >= NTDDI_VISTA) 42 #define FSRTL_FCB_HEADER_V0 (0x00) 43 #define FSRTL_FCB_HEADER_V1 (0x01) 45 #define FSRTL_FLAG_FILE_MODIFIED (0x01) 46 #define FSRTL_FLAG_FILE_LENGTH_CHANGED (0x02) 47 #define FSRTL_FLAG_LIMIT_MODIFIED_PAGES (0x04) 48 #define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX (0x08) 49 #define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH (0x10) 50 #define FSRTL_FLAG_USER_MAPPED_FILE (0x20) 51 #define FSRTL_FLAG_ADVANCED_HEADER (0x40) 52 #define FSRTL_FLAG_EOF_ADVANCE_ACTIVE (0x80) 54 #define FSRTL_FLAG2_DO_MODIFIED_WRITE (0x01) 55 #define FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS (0x02) 56 #define FSRTL_FLAG2_PURGE_WHEN_MAPPED (0x04) 57 #define FSRTL_FLAG2_IS_PAGING_FILE (0x08) 59 #define FSRTL_FSP_TOP_LEVEL_IRP (0x01) 60 #define FSRTL_CACHE_TOP_LEVEL_IRP (0x02) 61 #define FSRTL_MOD_WRITE_TOP_LEVEL_IRP (0x03) 62 #define FSRTL_FAST_IO_TOP_LEVEL_IRP (0x04) 63 #define FSRTL_NETWORK1_TOP_LEVEL_IRP ((LONG_PTR)0x05) 64 #define FSRTL_NETWORK2_TOP_LEVEL_IRP ((LONG_PTR)0x06) 65 #define FSRTL_MAX_TOP_LEVEL_IRP_FLAG ((LONG_PTR)0xFFFF) 74 #define FSRTL_AUXILIARY_FLAG_DEALLOCATE 0x00000001 82 #define FSRTL_FAT_LEGAL 0x01 83 #define FSRTL_HPFS_LEGAL 0x02 84 #define FSRTL_NTFS_LEGAL 0x04 85 #define FSRTL_WILD_CHARACTER 0x08 86 #define FSRTL_OLE_LEGAL 0x10 87 #define FSRTL_NTFS_STREAM_LEGAL (FSRTL_NTFS_LEGAL | FSRTL_OLE_LEGAL) 89 #define FSRTL_VOLUME_DISMOUNT 1 90 #define FSRTL_VOLUME_DISMOUNT_FAILED 2 91 #define FSRTL_VOLUME_LOCK 3 92 #define FSRTL_VOLUME_LOCK_FAILED 4 93 #define FSRTL_VOLUME_UNLOCK 5 94 #define FSRTL_VOLUME_MOUNT 6 95 #define FSRTL_VOLUME_NEEDS_CHKDSK 7 96 #define FSRTL_VOLUME_WORM_NEAR_FULL 8 97 #define FSRTL_VOLUME_WEARING_OUT 9 98 #define FSRTL_VOLUME_FORCED_CLOSED 10 99 #define FSRTL_VOLUME_INFO_MAKE_COMPAT 11 100 #define FSRTL_VOLUME_PREPARING_EJECT 12 101 #define FSRTL_VOLUME_CHANGE_SIZE 13 102 #define FSRTL_VOLUME_BACKGROUND_FORMAT 14 109 #if (NTDDI_VERSION >= NTDDI_VISTA) 111 #define FSRTL_UNC_PROVIDER_FLAGS_MAILSLOTS_SUPPORTED 0x00000001 112 #define FSRTL_UNC_PROVIDER_FLAGS_CSC_ENABLED 0x00000002 113 #define FSRTL_UNC_PROVIDER_FLAGS_DOMAIN_SVC_AWARE 0x00000004 115 #define FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 0x00000001 117 #define FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA 0x00000001 118 #define FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL 0x00000002 120 #define FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL 0x00000002 122 #define FSRTL_VIRTDISK_FULLY_ALLOCATED 0x00000001 123 #define FSRTL_VIRTDISK_NO_DRIVE_LETTER 0x00000002 167 #if (NTDDI_VERSION >= NTDDI_WIN2K) 179 #define FSRTL_CC_FLUSH_ERROR_FLAG_NO_HARD_ERROR 0x1 180 #define FSRTL_CC_FLUSH_ERROR_FLAG_NO_LOG_ENTRY 0x2 233 #define MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE 1 262 #if (NTDDI_VERSION >= NTDDI_VISTASP1) 263 #define OPLOCK_FLAG_COMPLETE_IF_OPLOCKED 0x00000001 266 #if (NTDDI_VERSION >= NTDDI_WIN7) 267 #define OPLOCK_FLAG_OPLOCK_KEY_CHECK_ONLY 0x00000002 268 #define OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK 0x00000004 269 #define OPLOCK_FLAG_IGNORE_OPLOCK_KEYS 0x00000008 270 #define OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH 0x00000001 273 #if (NTDDI_VERSION >= NTDDI_WIN7) 280 DEFINE_GUID(GUID_ECP_OPLOCK_KEY, 0x48850596, 0x3050, 0x4be7, 0x98, 0x63, 0xfe, 0xc3, 0x50, 0xce, 0x8d, 0x7f);
286 #if (NTDDI_VERSION >= NTDDI_WIN7)
struct _FILE_LOCK_INFO FILE_LOCK_INFO
ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext
UNICODE_STRING ProviderName
struct _FSRTL_PER_FILE_CONTEXT FSRTL_PER_FILE_CONTEXT
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID _In_opt_ PVOID FilterContext
VOID(* PFN_FSRTLTEARDOWNPERSTREAMCONTEXTS)(_In_ PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader)
enum _FAST_IO_POSSIBLE FAST_IO_POSSIBLE
FILE_LOCK_INFO LastReturnedLockInfo
ULONG FSRTL_ECP_LOOKASIDE_FLAGS
struct _FSRTL_COMMON_FCB_HEADER * PFSRTL_COMMON_FCB_HEADER
PKGUARDED_MUTEX GuardedMutex
LONG volatile LockRequestsInProgress
_Must_inspect_result_ _In_ LPCGUID EcpType
BOOLEAN(NTAPI * PFILTER_REPORT_CHANGE)(_In_ PVOID NotifyContext, _In_ PVOID FilterContext)
DEFINE_GUID(GUID_ECP_OPLOCK_KEY, 0x48850596, 0x3050, 0x4be7, 0x98, 0x63, 0xfe, 0xc3, 0x50, 0xce, 0x8d, 0x7f)
PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine
struct _LARGE_MCB * PLARGE_MCB
struct _FILE_LOCK * PFILE_LOCK
struct _FSRTL_PER_FILE_CONTEXT * PFSRTL_PER_FILE_CONTEXT
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct _FSRTL_ADVANCED_FCB_HEADER * PFSRTL_ADVANCED_FCB_HEADER
BOOLEAN(NTAPI * PCHECK_FOR_TRAVERSE_ACCESS)(_In_ PVOID NotifyContext, _In_opt_ PVOID TargetContext, _In_ PSECURITY_SUBJECT_CONTEXT SubjectContext)
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG _Outptr_ PVOID * EcpContext
PFREE_FUNCTION FreeCallback
$if(_NTIFS_) typedef ULONG LBN
_In_ PVOID _In_ ULONG Event
struct _BASE_MCB * PBASE_MCB
struct _FILE_LOCK FILE_LOCK
struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 * PFSRTL_MUP_PROVIDER_INFO_LEVEL_2
VOID(NTAPI * POPLOCK_WAIT_COMPLETE_ROUTINE)(_In_ PVOID Context, _In_ PIRP Irp)
LARGE_MCB DummyFieldThatSizesThisStructureCorrectly
$endif(_WDMDDK_) $if(_NTDDK_) typedef struct _NEON128
PFREE_FUNCTION FreeCallback
struct _FSRTL_PER_FILEOBJECT_CONTEXT FSRTL_PER_FILEOBJECT_CONTEXT
BOOLEAN FastIoIsQuestionable
VOID(NTAPI * PUNLOCK_ROUTINE)(_In_ PVOID Context, _In_ PFILE_LOCK_INFO FileLockInfo)
enum _FSRTL_CHANGE_BACKING_TYPE * PFSRTL_CHANGE_BACKING_TYPE
struct _FSRTL_COMMON_FCB_HEADER FSRTL_COMMON_FCB_HEADER
struct _FSRTL_AUXILIARY_BUFFER FSRTL_AUXILIARY_BUFFER
struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 * PFSRTL_MUP_PROVIDER_INFO_LEVEL_1
struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 FSRTL_MUP_PROVIDER_INFO_LEVEL_2
PUNLOCK_ROUTINE UnlockRoutine
struct _LARGE_MCB LARGE_MCB
#define FSRTL_COMMON_FCB_HEADER_LAYOUT
struct _EOF_WAIT_BLOCK * PEOF_WAIT_BLOCK
NTSTATUS(NTAPI * PCOMPLETE_LOCK_IRP_ROUTINE)(_In_ PVOID Context, _In_ PIRP Irp)
struct _FSRTL_PER_FILEOBJECT_CONTEXT * PFSRTL_PER_FILEOBJECT_CONTEXT
struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 FSRTL_MUP_PROVIDER_INFO_LEVEL_1
VOID(NTAPI * PFSRTL_STACK_OVERFLOW_ROUTINE)(_In_ PVOID Context, _In_ PKEVENT Event)
struct _ECP_LIST * PECP_LIST
_In_ PLIST_ENTRY _In_ PSTRING _In_ USHORT _In_opt_ PSTRING _In_opt_ PSTRING _In_ ULONG _In_ ULONG _In_opt_ PVOID TargetContext
struct _FSRTL_PER_STREAM_CONTEXT FSRTL_PER_STREAM_CONTEXT
struct _ECP_HEADER * PECP_HEADER
struct _FSRTL_PER_STREAM_CONTEXT * PFSRTL_PER_STREAM_CONTEXT
struct _OPLOCK_KEY_ECP_CONTEXT OPLOCK_KEY_ECP_CONTEXT
struct _EOF_WAIT_BLOCK EOF_WAIT_BLOCK
enum _FSRTL_COMPARISON_RESULT FSRTL_COMPARISON_RESULT
struct tagContext Context
struct _FILE_LOCK_INFO * PFILE_LOCK_INFO
struct _FSRTL_AUXILIARY_BUFFER * PFSRTL_AUXILIARY_BUFFER
VOID(* PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK)(_Inout_ PVOID EcpContext, _In_ LPCGUID EcpType)
struct _FSRTL_ADVANCED_FCB_HEADER FSRTL_ADVANCED_FCB_HEADER
struct _BASE_MCB BASE_MCB
VOID(NTAPI * POPLOCK_FS_PREPOST_IRP)(_In_ PVOID Context, _In_ PIRP Irp)
_FSRTL_CHANGE_BACKING_TYPE
LARGE_INTEGER StartingByte
enum _FSRTL_CHANGE_BACKING_TYPE FSRTL_CHANGE_BACKING_TYPE
struct _OPLOCK_KEY_ECP_CONTEXT * POPLOCK_KEY_ECP_CONTEXT
ULONG FSRTL_ALLOCATE_ECP_FLAGS