ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

fsrtltypes.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.