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

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

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