Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenfsrtl.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Kernel 00003 * LICENSE: GPL - See COPYING in the top level directory 00004 * FILE: ntoskrnl/include/fsrtl.h 00005 * PURPOSE: Internal header for the File System Runtime Library 00006 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 00007 */ 00008 00009 // 00010 // Define this if you want debugging support 00011 // 00012 #define _FSRTL_DEBUG_ 0x00 00013 00014 // 00015 // These define the Debug Masks Supported 00016 // 00017 #define FSRTL_FASTIO_DEBUG 0x01 00018 #define FSRTL_OPLOCK_DEBUG 0x02 00019 #define FSRTL_TUNNEL_DEBUG 0x04 00020 #define FSRTL_MCB_DEBUG 0x08 00021 #define FSRTL_NAME_DEBUG 0x10 00022 #define FSRTL_NOTIFY_DEBUG 0x20 00023 #define FSRTL_FILELOCK_DEBUG 0x40 00024 #define FSRTL_UNC_DEBUG 0x80 00025 #define FSRTL_FILTER_DEBUG 0x100 00026 #define FSRTL_CONTEXT_DEBUG 0x200 00027 00028 // 00029 // Debug/Tracing support 00030 // 00031 #if _FSRTL_DEBUG_ 00032 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented 00033 #define FSTRACE DbgPrintEx 00034 #else 00035 #define FSTRACE(x, ...) \ 00036 if (x & FsRtlpTraceLevel) DbgPrint(__VA_ARGS__) 00037 #endif 00038 #else 00039 #define FSTRACE(x, ...) DPRINT(__VA_ARGS__) 00040 #endif 00041 00042 // 00043 // Number of internal ERESOURCE structures allocated for callers to request 00044 // 00045 #define FSRTL_MAX_RESOURCES 16 00046 00047 // 00048 // Number of maximum pair count per MCB 00049 // 00050 #define MAXIMUM_PAIR_COUNT 15 00051 00052 // 00053 // Notifications flags 00054 // 00055 #define WATCH_TREE 0x01 00056 #define INVALIDATE_BUFFERS 0x02 00057 #define CLEANUP_IN_PROCESS 0x04 00058 #define ENUMERATE_DIR 0x08 00059 #define WATCH_ROOT 0x10 00060 #define DELETE_IN_PROCESS 0x20 00061 00062 // 00063 // Internal structure for NOTIFY_SYNC 00064 // 00065 typedef struct _REAL_NOTIFY_SYNC 00066 { 00067 FAST_MUTEX FastMutex; 00068 ULONG_PTR OwningThread; 00069 ULONG OwnerCount; 00070 } REAL_NOTIFY_SYNC, * PREAL_NOTIFY_SYNC; 00071 00072 // 00073 // Internal structure for notifications 00074 // 00075 typedef struct _NOTIFY_CHANGE 00076 { 00077 PREAL_NOTIFY_SYNC NotifySync; 00078 PVOID FsContext; 00079 PVOID StreamID; 00080 PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback; 00081 PSECURITY_SUBJECT_CONTEXT SubjectContext; 00082 PSTRING FullDirectoryName; 00083 LIST_ENTRY NotifyList; 00084 LIST_ENTRY NotifyIrps; 00085 PFILTER_REPORT_CHANGE FilterCallback; 00086 USHORT Flags; 00087 UCHAR CharacterSize; 00088 ULONG CompletionFilter; 00089 PVOID AllocatedBuffer; 00090 PVOID Buffer; 00091 ULONG BufferLength; 00092 ULONG ThisBufferLength; 00093 ULONG DataLength; 00094 ULONG LastEntry; 00095 ULONG ReferenceCount; 00096 PEPROCESS OwningProcess; 00097 } NOTIFY_CHANGE, *PNOTIFY_CHANGE; 00098 00099 // 00100 // Internal structure for MCB Mapping pointer 00101 // 00102 typedef struct _INT_MAPPING 00103 { 00104 VBN Vbn; 00105 LBN Lbn; 00106 } INT_MAPPING, *PINT_MAPPING; 00107 00108 // 00109 // Initialization Routines 00110 // 00111 VOID 00112 NTAPI 00113 FsRtlInitializeLargeMcbs( 00114 VOID 00115 ); 00116 00117 // 00118 // File contexts Routines 00119 // 00120 VOID 00121 NTAPI 00122 FsRtlPTeardownPerFileObjectContexts( 00123 IN PFILE_OBJECT FileObject 00124 ); 00125 00126 BOOLEAN 00127 NTAPI 00128 FsRtlInitSystem( 00129 VOID 00130 ); 00131 00132 // 00133 // Global data inside the File System Runtime Library 00134 // 00135 extern PERESOURCE FsRtlPagingIoResources; 00136 extern PUCHAR _FsRtlLegalAnsiCharacterArray; 00137 extern PAGED_LOOKASIDE_LIST FsRtlFileLockLookasideList; Generated on Fri May 25 2012 04:35:35 for ReactOS by
1.7.6.1
|