|
|
/*++
Copyright (c) 1987-1996 Microsoft Corporation
Module Name:
nldebug.h
Abstract:
Netlogon service debug support
Author:
Ported from Lan Man 2.0
Revision History:
21-May-1991 (cliffv) Ported to NT. Converted to NT style.
--*/
//
// nlp.c will #include this file with DEBUG_ALLOCATE defined.
// That will cause each of these variables to be allocated.
//
#ifdef EXTERN
#undef EXTERN
#endif
#ifdef DEBUG_ALLOCATE
#define EXTERN
#else
#define EXTERN extern
#endif
////////////////////////////////////////////////////////////////////////
//
// Debug Definititions
//
////////////////////////////////////////////////////////////////////////
#define NL_INIT 0x00000001 // Initialization
#define NL_MISC 0x00000002 // Misc debug
#define NL_LOGON 0x00000004 // Logon processing
#define NL_SYNC 0x00000008 // Synchronization and replication
#define NL_MAILSLOT 0x00000010 // Mailslot messages
#define NL_SITE 0x00000020 // Sites
#define NL_CRITICAL 0x00000100 // Only real important errors
#define NL_SESSION_SETUP 0x00000200 // Trusted Domain maintenance
#define NL_DOMAIN 0x00000400 // Hosted Domain maintenance
#define NL_2 0x00000800
#define NL_SERVER_SESS 0x00001000 // Server session maintenance
#define NL_CHANGELOG 0x00002000 // Change Log references
#define NL_DNS 0x00004000 // DNS name registration
//
// Very verbose bits
//
#define NL_WORKER 0x00010000 // Debug worker thread
#define NL_DNS_MORE 0x00020000 // Verbose DNS name registration
#define NL_PULSE_MORE 0x00040000 // Verbose pulse processing
#define NL_SESSION_MORE 0x00080000 // Verbose session management
#define NL_REPL_TIME 0x00100000 // replication timing output
#define NL_REPL_OBJ_TIME 0x00200000 // replication objects get/set timing output
#define NL_ENCRYPT 0x00400000 // debug encrypt and decrypt across net
#define NL_SYNC_MORE 0x00800000 // additional replication dbgprint
#define NL_PACK_VERBOSE 0x01000000 // Verbose Pack/Unpack
#define NL_MAILSLOT_TEXT 0x02000000 // Verbose Mailslot messages
#define NL_CHALLENGE_RES 0x04000000 // challenge response debug
#define NL_SITE_MORE 0x08000000 // Verbose sites
//
// Control bits.
//
#define NL_INHIBIT_CANCEL 0x10000000 // Don't cancel API calls
#define NL_TIMESTAMP 0x20000000 // TimeStamp each output line
#define NL_ONECHANGE_REPL 0x40000000 // Only replicate one change per call
#define NL_BREAKPOINT 0x80000000 // Enter debugger on startup
#ifdef WIN32_CHICAGO
#ifdef NETLOGONDBG
#undef NETLOGONDBG
#endif
#if DBG
#define NETLOGONDBG 1
#endif // DBG
#endif // WIN32_CHICAGO
#if NETLOGONDBG || defined(NLTEST_IMAGE)
#ifdef WIN32_CHICAGO
EXTERN DWORD NlGlobalTrace; #endif // WIN32_CHICAGO
//
// Debug share path.
//
EXTERN LPWSTR NlGlobalDebugSharePath;
#ifndef WIN32_CHICAGO
#define IF_NL_DEBUG(Function) \
if (NlGlobalParameters.DbFlag & NL_ ## Function) #else
#define IF_NL_DEBUG(Function) \
if (NlGlobalTrace & NL_ ## Function) #endif
#define NlPrint(_x_) NlPrintRoutine _x_
#define NlPrintDom(_x_) NlPrintDomRoutine _x_
#define NlPrintCs(_x_) NlPrintCsRoutine _x_
VOID NlAssertFailed( IN PVOID FailedAssertion, IN PVOID FileName, IN ULONG LineNumber, IN PCHAR Message OPTIONAL );
#define NlAssert(Predicate) \
{ \ if (!(Predicate)) \ NlAssertFailed( #Predicate, __FILE__, __LINE__, NULL ); \ }
#define DEBUG_DIR L"\\debug"
#define DEBUG_FILE L"\\netlogon.log"
#define DEBUG_BAK_FILE L"\\netlogon.bak"
#define DEBUG_SHARE_NAME L"DEBUG"
VOID NlPrintRoutine( IN DWORD DebugFlag, IN LPSTR FORMATSTRING, // PRINTF()-STYLE FORMAT STRING.
... // OTHER ARGUMENTS ARE POSSIBLE.
);
#ifdef _NETLOGON_SERVER
VOID NlPrintDomRoutine( IN DWORD DebugFlag, IN PDOMAIN_INFO DomainInfo OPTIONAL, IN LPSTR Format, ... );
VOID NlPrintCsRoutine( IN DWORD DebugFlag, IN PCLIENT_SESSION, IN LPSTR Format, ... );
VOID NlPrintRoutineV( IN DWORD DebugFlag, IN LPSTR Format, va_list arglist );
VOID NlPrintRpcDebug( IN LPCSTR RpcRoutineName, IN NTSTATUS StatusIn ); #endif // _NETLOGON_SERVER
VOID NlpDumpGuid( IN DWORD DebugFlag, IN GUID *Guid );
VOID NlpDumpSid( IN DWORD DebugFlag, IN PSID Sid );
VOID NlpDumpTime( IN DWORD DebugFlag, IN LPSTR Comment, IN LARGE_INTEGER ConvertTime );
VOID NlpDumpPeriod( IN DWORD DebugFlag, IN LPSTR Comment, IN ULONG Period );
VOID NlpDumpBuffer( IN DWORD DebugFlag, IN PVOID Buffer, IN DWORD BufferSize );
VOID NlOpenDebugFile( IN BOOL ReopenFlag );
//
// Debug log file
//
EXTERN HANDLE NlGlobalLogFile; #define DEFAULT_MAXIMUM_LOGFILE_SIZE 20000000
EXTERN LPBYTE NlGlobalLogFileOutputBuffer;
//
// To serialize access to log file.
//
#ifndef WIN32_CHICAGO
EXTERN CRITICAL_SECTION NlGlobalLogFileCritSect; #endif // WIN32_CHICAGO
#else
#define IF_NL_DEBUG(Function) if (FALSE)
// Nondebug version.
#define NlpDumpBuffer
#define NlpDumpGuid
#define NlpDumpSid
#define NlPrint(_x_)
#define NlPrintDom(_x_)
#define NlPrintCs(_x_)
#define NlAssert(Predicate) /* no output; ignore arguments */
#undef EXTERN
#endif // NETLOGONDBG
|