[NTOSKRNL]
[reactos.git] / reactos / ntoskrnl / include / internal / fsrtl.h
1 /*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/include/fsrtl.h
5 * PURPOSE: Internal header for the File System Runtime Library
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9 //
10 // Define this if you want debugging support
11 //
12 #define _FSRTL_DEBUG_ 0x00
13
14 //
15 // These define the Debug Masks Supported
16 //
17 #define FSRTL_FASTIO_DEBUG 0x01
18 #define FSRTL_OPLOCK_DEBUG 0x02
19 #define FSRTL_TUNNEL_DEBUG 0x04
20 #define FSRTL_MCB_DEBUG 0x08
21 #define FSRTL_NAME_DEBUG 0x10
22 #define FSRTL_NOTIFY_DEBUG 0x20
23 #define FSRTL_FILELOCK_DEBUG 0x40
24 #define FSRTL_UNC_DEBUG 0x80
25 #define FSRTL_FILTER_DEBUG 0x100
26 #define FSRTL_CONTEXT_DEBUG 0x200
27
28 //
29 // Debug/Tracing support
30 //
31 #if _FSRTL_DEBUG_
32 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
33 #define FSTRACE DbgPrintEx
34 #else
35 #define FSTRACE(x, ...) \
36 if (x & FsRtlpTraceLevel) DbgPrint(__VA_ARGS__)
37 #endif
38 #else
39 #define FSTRACE(x, ...) DPRINT(__VA_ARGS__)
40 #endif
41
42 //
43 // Number of internal ERESOURCE structures allocated for callers to request
44 //
45 #define FSRTL_MAX_RESOURCES 16
46
47 //
48 // Initialization Routines
49 //
50 BOOLEAN
51 NTAPI
52 FsRtlInitSystem(
53 VOID
54 );
55
56 //
57 // Global data inside the File System Runtime Library
58 //
59 extern PERESOURCE FsRtlPagingIoResources;
60 extern PUCHAR _FsRtlLegalAnsiCharacterArray;
61 extern PAGED_LOOKASIDE_LIST FsRtlFileLockLookasideList;