Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenfsrtltypes.h
Go to the documentation of this file.
00001 $if (_NTIFS_) 00002 /* FSRTL Types */ 00003 00004 typedef ULONG LBN; 00005 typedef LBN *PLBN; 00006 00007 typedef ULONG VBN; 00008 typedef VBN *PVBN; 00009 00010 #define FSRTL_COMMON_FCB_HEADER_LAYOUT \ 00011 CSHORT NodeTypeCode; \ 00012 CSHORT NodeByteSize; \ 00013 UCHAR Flags; \ 00014 UCHAR IsFastIoPossible; \ 00015 UCHAR Flags2; \ 00016 UCHAR Reserved:4; \ 00017 UCHAR Version:4; \ 00018 PERESOURCE Resource; \ 00019 PERESOURCE PagingIoResource; \ 00020 LARGE_INTEGER AllocationSize; \ 00021 LARGE_INTEGER FileSize; \ 00022 LARGE_INTEGER ValidDataLength; 00023 00024 typedef struct _FSRTL_COMMON_FCB_HEADER { 00025 FSRTL_COMMON_FCB_HEADER_LAYOUT 00026 } FSRTL_COMMON_FCB_HEADER, *PFSRTL_COMMON_FCB_HEADER; 00027 00028 #ifdef __cplusplus 00029 typedef struct _FSRTL_ADVANCED_FCB_HEADER:FSRTL_COMMON_FCB_HEADER { 00030 #else /* __cplusplus */ 00031 typedef struct _FSRTL_ADVANCED_FCB_HEADER { 00032 FSRTL_COMMON_FCB_HEADER_LAYOUT 00033 #endif /* __cplusplus */ 00034 PFAST_MUTEX FastMutex; 00035 LIST_ENTRY FilterContexts; 00036 #if (NTDDI_VERSION >= NTDDI_VISTA) 00037 EX_PUSH_LOCK PushLock; 00038 PVOID *FileContextSupportPointer; 00039 #endif 00040 } FSRTL_ADVANCED_FCB_HEADER, *PFSRTL_ADVANCED_FCB_HEADER; 00041 00042 #define FSRTL_FCB_HEADER_V0 (0x00) 00043 #define FSRTL_FCB_HEADER_V1 (0x01) 00044 00045 #define FSRTL_FLAG_FILE_MODIFIED (0x01) 00046 #define FSRTL_FLAG_FILE_LENGTH_CHANGED (0x02) 00047 #define FSRTL_FLAG_LIMIT_MODIFIED_PAGES (0x04) 00048 #define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX (0x08) 00049 #define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH (0x10) 00050 #define FSRTL_FLAG_USER_MAPPED_FILE (0x20) 00051 #define FSRTL_FLAG_ADVANCED_HEADER (0x40) 00052 #define FSRTL_FLAG_EOF_ADVANCE_ACTIVE (0x80) 00053 00054 #define FSRTL_FLAG2_DO_MODIFIED_WRITE (0x01) 00055 #define FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS (0x02) 00056 #define FSRTL_FLAG2_PURGE_WHEN_MAPPED (0x04) 00057 #define FSRTL_FLAG2_IS_PAGING_FILE (0x08) 00058 00059 #define FSRTL_FSP_TOP_LEVEL_IRP (0x01) 00060 #define FSRTL_CACHE_TOP_LEVEL_IRP (0x02) 00061 #define FSRTL_MOD_WRITE_TOP_LEVEL_IRP (0x03) 00062 #define FSRTL_FAST_IO_TOP_LEVEL_IRP (0x04) 00063 #define FSRTL_NETWORK1_TOP_LEVEL_IRP ((LONG_PTR)0x05) 00064 #define FSRTL_NETWORK2_TOP_LEVEL_IRP ((LONG_PTR)0x06) 00065 #define FSRTL_MAX_TOP_LEVEL_IRP_FLAG ((LONG_PTR)0xFFFF) 00066 00067 typedef struct _FSRTL_AUXILIARY_BUFFER { 00068 PVOID Buffer; 00069 ULONG Length; 00070 ULONG Flags; 00071 PMDL Mdl; 00072 } FSRTL_AUXILIARY_BUFFER, *PFSRTL_AUXILIARY_BUFFER; 00073 00074 #define FSRTL_AUXILIARY_FLAG_DEALLOCATE 0x00000001 00075 00076 typedef enum _FSRTL_COMPARISON_RESULT { 00077 LessThan = -1, 00078 EqualTo = 0, 00079 GreaterThan = 1 00080 } FSRTL_COMPARISON_RESULT; 00081 00082 #define FSRTL_FAT_LEGAL 0x01 00083 #define FSRTL_HPFS_LEGAL 0x02 00084 #define FSRTL_NTFS_LEGAL 0x04 00085 #define FSRTL_WILD_CHARACTER 0x08 00086 #define FSRTL_OLE_LEGAL 0x10 00087 #define FSRTL_NTFS_STREAM_LEGAL (FSRTL_NTFS_LEGAL | FSRTL_OLE_LEGAL) 00088 00089 #define FSRTL_VOLUME_DISMOUNT 1 00090 #define FSRTL_VOLUME_DISMOUNT_FAILED 2 00091 #define FSRTL_VOLUME_LOCK 3 00092 #define FSRTL_VOLUME_LOCK_FAILED 4 00093 #define FSRTL_VOLUME_UNLOCK 5 00094 #define FSRTL_VOLUME_MOUNT 6 00095 #define FSRTL_VOLUME_NEEDS_CHKDSK 7 00096 #define FSRTL_VOLUME_WORM_NEAR_FULL 8 00097 #define FSRTL_VOLUME_WEARING_OUT 9 00098 #define FSRTL_VOLUME_FORCED_CLOSED 10 00099 #define FSRTL_VOLUME_INFO_MAKE_COMPAT 11 00100 #define FSRTL_VOLUME_PREPARING_EJECT 12 00101 #define FSRTL_VOLUME_CHANGE_SIZE 13 00102 #define FSRTL_VOLUME_BACKGROUND_FORMAT 14 00103 00104 typedef VOID 00105 (NTAPI *PFSRTL_STACK_OVERFLOW_ROUTINE)( 00106 _In_ PVOID Context, 00107 _In_ PKEVENT Event); 00108 00109 #if (NTDDI_VERSION >= NTDDI_VISTA) 00110 00111 #define FSRTL_UNC_PROVIDER_FLAGS_MAILSLOTS_SUPPORTED 0x00000001 00112 #define FSRTL_UNC_PROVIDER_FLAGS_CSC_ENABLED 0x00000002 00113 #define FSRTL_UNC_PROVIDER_FLAGS_DOMAIN_SVC_AWARE 0x00000004 00114 00115 #define FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 0x00000001 00116 00117 #define FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA 0x00000001 00118 #define FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL 0x00000002 00119 00120 #define FSRTL_ECP_LOOKASIDE_FLAG_NONPAGED_POOL 0x00000002 00121 00122 #define FSRTL_VIRTDISK_FULLY_ALLOCATED 0x00000001 00123 #define FSRTL_VIRTDISK_NO_DRIVE_LETTER 0x00000002 00124 00125 typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_1 { 00126 ULONG32 ProviderId; 00127 } FSRTL_MUP_PROVIDER_INFO_LEVEL_1, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_1; 00128 00129 typedef struct _FSRTL_MUP_PROVIDER_INFO_LEVEL_2 { 00130 ULONG32 ProviderId; 00131 UNICODE_STRING ProviderName; 00132 } FSRTL_MUP_PROVIDER_INFO_LEVEL_2, *PFSRTL_MUP_PROVIDER_INFO_LEVEL_2; 00133 00134 typedef VOID 00135 (*PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK) ( 00136 _Inout_ PVOID EcpContext, 00137 _In_ LPCGUID EcpType); 00138 00139 typedef struct _ECP_LIST ECP_LIST, *PECP_LIST; 00140 00141 typedef ULONG FSRTL_ALLOCATE_ECPLIST_FLAGS; 00142 typedef ULONG FSRTL_ALLOCATE_ECP_FLAGS; 00143 typedef ULONG FSRTL_ECP_LOOKASIDE_FLAGS; 00144 00145 typedef enum _FSRTL_CHANGE_BACKING_TYPE { 00146 ChangeDataControlArea, 00147 ChangeImageControlArea, 00148 ChangeSharedCacheMap 00149 } FSRTL_CHANGE_BACKING_TYPE, *PFSRTL_CHANGE_BACKING_TYPE; 00150 00151 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ 00152 00153 typedef struct _FSRTL_PER_FILE_CONTEXT { 00154 LIST_ENTRY Links; 00155 PVOID OwnerId; 00156 PVOID InstanceId; 00157 PFREE_FUNCTION FreeCallback; 00158 } FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT; 00159 00160 typedef struct _FSRTL_PER_STREAM_CONTEXT { 00161 LIST_ENTRY Links; 00162 PVOID OwnerId; 00163 PVOID InstanceId; 00164 PFREE_FUNCTION FreeCallback; 00165 } FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT; 00166 00167 #if (NTDDI_VERSION >= NTDDI_WIN2K) 00168 typedef VOID 00169 (*PFN_FSRTLTEARDOWNPERSTREAMCONTEXTS) ( 00170 _In_ PFSRTL_ADVANCED_FCB_HEADER AdvancedHeader); 00171 #endif 00172 00173 typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT { 00174 LIST_ENTRY Links; 00175 PVOID OwnerId; 00176 PVOID InstanceId; 00177 } FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT; 00178 00179 #define FSRTL_CC_FLUSH_ERROR_FLAG_NO_HARD_ERROR 0x1 00180 #define FSRTL_CC_FLUSH_ERROR_FLAG_NO_LOG_ENTRY 0x2 00181 00182 typedef NTSTATUS 00183 (NTAPI *PCOMPLETE_LOCK_IRP_ROUTINE) ( 00184 _In_ PVOID Context, 00185 _In_ PIRP Irp); 00186 00187 typedef struct _FILE_LOCK_INFO { 00188 LARGE_INTEGER StartingByte; 00189 LARGE_INTEGER Length; 00190 BOOLEAN ExclusiveLock; 00191 ULONG Key; 00192 PFILE_OBJECT FileObject; 00193 PVOID ProcessId; 00194 LARGE_INTEGER EndingByte; 00195 } FILE_LOCK_INFO, *PFILE_LOCK_INFO; 00196 00197 typedef VOID 00198 (NTAPI *PUNLOCK_ROUTINE) ( 00199 _In_ PVOID Context, 00200 _In_ PFILE_LOCK_INFO FileLockInfo); 00201 00202 typedef struct _FILE_LOCK { 00203 PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine; 00204 PUNLOCK_ROUTINE UnlockRoutine; 00205 BOOLEAN FastIoIsQuestionable; 00206 BOOLEAN SpareC[3]; 00207 PVOID LockInformation; 00208 FILE_LOCK_INFO LastReturnedLockInfo; 00209 PVOID LastReturnedLock; 00210 LONG volatile LockRequestsInProgress; 00211 } FILE_LOCK, *PFILE_LOCK; 00212 00213 typedef struct _TUNNEL { 00214 FAST_MUTEX Mutex; 00215 PRTL_SPLAY_LINKS Cache; 00216 LIST_ENTRY TimerQueue; 00217 USHORT NumEntries; 00218 } TUNNEL, *PTUNNEL; 00219 00220 typedef struct _BASE_MCB { 00221 ULONG MaximumPairCount; 00222 ULONG PairCount; 00223 USHORT PoolType; 00224 USHORT Flags; 00225 PVOID Mapping; 00226 } BASE_MCB, *PBASE_MCB; 00227 00228 typedef struct _LARGE_MCB { 00229 PKGUARDED_MUTEX GuardedMutex; 00230 BASE_MCB BaseMcb; 00231 } LARGE_MCB, *PLARGE_MCB; 00232 00233 #define MCB_FLAG_RAISE_ON_ALLOCATION_FAILURE 1 00234 00235 typedef struct _MCB { 00236 LARGE_MCB DummyFieldThatSizesThisStructureCorrectly; 00237 } MCB, *PMCB; 00238 00239 typedef enum _FAST_IO_POSSIBLE { 00240 FastIoIsNotPossible = 0, 00241 FastIoIsPossible, 00242 FastIoIsQuestionable 00243 } FAST_IO_POSSIBLE; 00244 00245 typedef struct _EOF_WAIT_BLOCK { 00246 LIST_ENTRY EofWaitLinks; 00247 KEVENT Event; 00248 } EOF_WAIT_BLOCK, *PEOF_WAIT_BLOCK; 00249 00250 typedef PVOID OPLOCK, *POPLOCK; 00251 00252 typedef VOID 00253 (NTAPI *POPLOCK_WAIT_COMPLETE_ROUTINE) ( 00254 _In_ PVOID Context, 00255 _In_ PIRP Irp); 00256 00257 typedef VOID 00258 (NTAPI *POPLOCK_FS_PREPOST_IRP) ( 00259 _In_ PVOID Context, 00260 _In_ PIRP Irp); 00261 00262 #if (NTDDI_VERSION >= NTDDI_VISTASP1) 00263 #define OPLOCK_FLAG_COMPLETE_IF_OPLOCKED 0x00000001 00264 #endif 00265 00266 #if (NTDDI_VERSION >= NTDDI_WIN7) 00267 #define OPLOCK_FLAG_OPLOCK_KEY_CHECK_ONLY 0x00000002 00268 #define OPLOCK_FLAG_BACK_OUT_ATOMIC_OPLOCK 0x00000004 00269 #define OPLOCK_FLAG_IGNORE_OPLOCK_KEYS 0x00000008 00270 #define OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH 0x00000001 00271 #endif 00272 00273 #if (NTDDI_VERSION >= NTDDI_WIN7) 00274 00275 typedef struct _OPLOCK_KEY_ECP_CONTEXT { 00276 GUID OplockKey; 00277 ULONG Reserved; 00278 } OPLOCK_KEY_ECP_CONTEXT, *POPLOCK_KEY_ECP_CONTEXT; 00279 00280 DEFINE_GUID(GUID_ECP_OPLOCK_KEY, 0x48850596, 0x3050, 0x4be7, 0x98, 0x63, 0xfe, 0xc3, 0x50, 0xce, 0x8d, 0x7f); 00281 00282 #endif 00283 00284 typedef PVOID PNOTIFY_SYNC; 00285 00286 #if (NTDDI_VERSION >= NTDDI_WIN7) 00287 typedef struct _ECP_HEADER ECP_HEADER, *PECP_HEADER; 00288 #endif 00289 00290 typedef BOOLEAN 00291 (NTAPI *PCHECK_FOR_TRAVERSE_ACCESS) ( 00292 _In_ PVOID NotifyContext, 00293 _In_opt_ PVOID TargetContext, 00294 _In_ PSECURITY_SUBJECT_CONTEXT SubjectContext); 00295 00296 typedef BOOLEAN 00297 (NTAPI *PFILTER_REPORT_CHANGE) ( 00298 _In_ PVOID NotifyContext, 00299 _In_ PVOID FilterContext); 00300 $endif (_NTIFS_) Generated on Sat May 26 2012 04:32:14 for ReactOS by
1.7.6.1
|