diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/npfs/npdata.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/ntos/npfs/npdata.h')
-rw-r--r-- | private/ntos/npfs/npdata.h | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/private/ntos/npfs/npdata.h b/private/ntos/npfs/npdata.h new file mode 100644 index 000000000..08e8dc860 --- /dev/null +++ b/private/ntos/npfs/npdata.h @@ -0,0 +1,182 @@ +/*++ + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + NpData.c + +Abstract: + + This module declares the global data used by the Named Pipe file system. + +Author: + + Gary Kimura [GaryKi] 20-Aug-1990 + +Revision History: + +--*/ + +#ifndef _NPDATA_ +#define _NPDATA_ + +extern PVCB NpVcb; + +// +// The global structure used to contain our fast I/O callbacks +// + +extern FAST_IO_DISPATCH NpFastIoDispatch; + +// +// Lists of pipe name aliases. +// + +#define MIN_LENGTH_ALIAS_ARRAY (5 * sizeof(WCHAR)) // includes '\' +#define MAX_LENGTH_ALIAS_ARRAY (9 * sizeof(WCHAR)) + +extern SINGLE_LIST_ENTRY NpAliasListByLength[(MAX_LENGTH_ALIAS_ARRAY-MIN_LENGTH_ALIAS_ARRAY)/sizeof(WCHAR)+1]; +extern SINGLE_LIST_ENTRY NpAliasList; + +extern PVOID NpAliases; // single allocation containing all aliases + +// +// The global Named Pipe debug level variable, its values are: +// +// 0x00000000 Always gets printed (used when about to bug check) +// +// 0x00000001 +// 0x00000002 +// 0x00000004 +// 0x00000008 +// +// 0x00000010 +// 0x00000020 +// 0x00000040 +// 0x00000080 +// +// 0x00000100 +// 0x00000200 +// 0x00000400 +// 0x00000800 +// +// 0x00001000 +// 0x00002000 +// 0x00004000 +// 0x00008000 +// +// 0x00010000 +// 0x00020000 +// 0x00040000 +// 0x00080000 +// +// 0x00100000 +// 0x00200000 +// 0x00400000 +// 0x00800000 +// +// 0x01000000 +// 0x02000000 +// 0x04000000 +// 0x08000000 +// +// 0x10000000 +// 0x20000000 +// 0x40000000 +// 0x80000000 +// + +#ifdef NPDBG + +#define DEBUG_TRACE_ERROR (0x00000001) +#define DEBUG_TRACE_DEBUG_HOOKS (0x00000002) +#define DEBUG_TRACE_CATCH_EXCEPTIONS (0x00000004) +#define DEBUG_TRACE_CREATE (0x00000008) +#define DEBUG_TRACE_CLOSE (0x00000010) +#define DEBUG_TRACE_READ (0x00000020) +#define DEBUG_TRACE_WRITE (0x00000040) +#define DEBUG_TRACE_FILEINFO (0x00000080) +#define DEBUG_TRACE_CLEANUP (0x00000100) +#define DEBUG_TRACE_DIR (0x00000200) +#define DEBUG_TRACE_FSCONTRL (0x00000400) +#define DEBUG_TRACE_CREATE_NAMED_PIPE (0x00000800) +#define DEBUG_TRACE_FLUSH_BUFFERS (0x00001000) +#define DEBUG_TRACE_VOLINFO (0x00002000) +#define DEBUG_TRACE_SEINFO (0x00004000) +#define DEBUG_TRACE_0x00008000 (0x00008000) +#define DEBUG_TRACE_0x00010000 (0x00010000) +#define DEBUG_TRACE_SECURSUP (0x00020000) +#define DEBUG_TRACE_DEVIOSUP (0x00040000) +#define DEBUG_TRACE_RESRCSUP (0x00080000) +#define DEBUG_TRACE_READSUP (0x00100000) +#define DEBUG_TRACE_WRITESUP (0x00200000) +#define DEBUG_TRACE_STATESUP (0x00400000) +#define DEBUG_TRACE_FILOBSUP (0x00800000) +#define DEBUG_TRACE_PREFXSUP (0x01000000) +#define DEBUG_TRACE_CNTXTSUP (0x02000000) +#define DEBUG_TRACE_DATASUP (0x04000000) +#define DEBUG_TRACE_WAITSUP (0x08000000) +#define DEBUG_TRACE_EVENTSUP (0x10000000) +#define DEBUG_TRACE_STRUCSUP (0x20000000) + +extern LONG NpDebugTraceLevel; +extern LONG NpDebugTraceIndent; + +#define DebugTrace(INDENT,LEVEL,X,Y) { \ + LONG _i; \ + if (((LEVEL) == 0) || (NpDebugTraceLevel & (LEVEL))) { \ + _i = (ULONG)PsGetCurrentThread(); \ + DbgPrint("%08lx:",_i); \ + if ((INDENT) < 0) { \ + NpDebugTraceIndent += (INDENT); \ + } \ + if (NpDebugTraceIndent < 0) { \ + NpDebugTraceIndent = 0; \ + } \ + for (_i=0; _i<NpDebugTraceIndent; _i+=1) { \ + DbgPrint(" "); \ + } \ + DbgPrint(X,Y); \ + if ((INDENT) > 0) { \ + NpDebugTraceIndent += (INDENT); \ + } \ + } \ +} + +#define DebugDump(STR,LEVEL,PTR) { \ + ULONG _i; \ + VOID NpDump(PVOID Ptr); \ + if (((LEVEL) == 0) || (NpDebugTraceLevel & (LEVEL))) { \ + _i = (ULONG)PsGetCurrentThread(); \ + DbgPrint("%08lx:",_i); \ + DbgPrint(STR); \ + if (PTR != NULL) {NpDump(PTR);} \ + DbgBreakPoint(); \ + } \ +} + +#else + +#define DebugTrace(INDENT,LEVEL,X,Y) {NOTHING;} +#define DebugDump(STR,LEVEL,PTR) {NOTHING;} + +#endif // NPDBG + +// +// The following macro is for all people who compile with the DBG switch +// set, not just fastfat dbg users +// + +#if DBG + +#define DbgDoit(X) {X;} + +#else + +#define DbgDoit(X) {NOTHING;} + +#endif // DBG + + +#endif // _NPDATA_ |