Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

128 lines
4.3 KiB

//+----------------------------------------------------------------------------
//
// File: dfsdata.h
//
// Contents: This module declares the global data used by the
// Dfs file system.
//
// Functions:
//
//-----------------------------------------------------------------------------
#ifndef _DFSDATA_
#define _DFSDATA_
//
// The global FSD data record.
//
extern DFS_DATA DfsData;
//
// The global event logging level
//
extern ULONG DfsEventLog;
//
// The security descriptor used to check access for renames along exit paths
//
extern PSECURITY_DESCRIPTOR SeRenameSd;
#if DBG
#define DEBUG_TRACE_ERROR (0x00000001)
#define DEBUG_TRACE_DEBUG_HOOKS (0x00000002)
#define DEBUG_TRACE_CATCH_EXCEPTIONS (0x00000004)
#define DEBUG_TRACE_UNWIND (0x00000008)
#define DEBUG_TRACE_REGISTRY (0x00000010)
#define DEBUG_TRACE_CLOSE (0x00000020)
#define DEBUG_TRACE_CREATE (0x00000040)
#define DEBUG_TRACE_INIT (0x00000080)
#define DEBUG_TRACE_INSTRUM (0x00000100)
#define DEBUG_TRACE_FILEINFO (0x00000200)
#define DEBUG_TRACE_FSCTRL (0x00000400)
#define DEBUG_TRACE_RTL (0x00000800)
#define DEBUG_TRACE_RESET (0x00001000)
#define DEBUG_TRACE_VOLINFO (0x00002000) // Unused
#define DEBUG_TRACE_WRITE (0x00004000) // Unused
#define DEBUG_TRACE_DEVCTRL (0x00008000) // Unused
#define DEBUG_TRACE_PKT (0x00010000)
#define DEBUG_TRACE_DOTDFS (0x00020000) // Unused
#define DEBUG_TRACE_LOCALVOL (0x00040000)
#define DEBUG_TRACE_DNR (0x00080000) // Unused
#define DEBUG_TRACE_ATTACH (0x00100000)
#define DEBUG_TRACE_FASTIO (0x00200000)
#define DEBUG_TRACE_DIRSUP (0x00400000) // Unused
#define DEBUG_TRACE_FILOBSUP (0x00800000) // Unused
#define DEBUG_TRACE_EVENTLOG (0x01000000)
#define DEBUG_TRACE_LOGROOT (0x02000000) // Unused
#define DEBUG_TRACE_CACHESUP (0x04000000) // Unused
#define DEBUG_TRACE_PREFXSUP (0x08000000)
#define DEBUG_TRACE_DEVIOSUP (0x10000000) // Unused
#define DEBUG_TRACE_STRUCSUP (0x20000000) // Unused
#define DEBUG_TRACE_ROOT_EXPANSION (0x40000000)
#define DEBUG_TRACE_REFERRALS (0x80000000)
extern LONG DfsDebugTraceLevel;
extern LONG DfsDebugTraceIndent;
//+---------------------------------------------------------------------------
// Macro: DebugTrace, public
//
// Synopsis: Conditionally print a debug trace message
//
// Arguments: [Indent] -- Indent to appluy: +1, 0 or -1
// [Level] -- debug trace level
// [Msg] -- Message to be printed, can include one prinf-style
// format effector.
// [Y] -- Value to be printed
//
// Returns: None
//
//----------------------------------------------------------------------------
VOID DfsDebugTracePrint(PCHAR x, PVOID y);
#define DebugTrace(INDENT,LEVEL,X,Y) { \
if (((LEVEL) == 0) || (DfsDebugTraceLevel & (LEVEL))) { \
if ((INDENT) < 0) { \
DfsDebugTraceIndent += (INDENT); \
} \
DfsDebugTracePrint(X, (PVOID)Y); \
if ((INDENT) > 0) { \
DfsDebugTraceIndent += (INDENT); \
} \
} \
}
#else
#define DebugTrace(INDENT,LEVEL,X,Y) {NOTHING;}
#endif // DBG
//+---------------------------------------------------------------------------
// Macro: BugCheck, public
//
// Synopsis: Call DfsBugCheck with invoker's file and line numbers
//
// Arguments: [Msg] -- Optional Message to be printed for debug
// builds
//
// Returns: None
//
//----------------------------------------------------------------------------
#if DBG
VOID DfsBugCheck(CHAR *pszmsg, CHAR *pszfile, ULONG line);
#define BugCheck(sz) DfsBugCheck(sz, __FILE__, __LINE__)
#else
VOID DfsBugCheck(VOID);
#define BugCheck(sz) DfsBugCheck()
#endif
#endif // _DFSDATA_