156 lines
5.3 KiB
C
156 lines
5.3 KiB
C
/*++
|
|
|
|
Copyright (c) 1989-1993 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Debug.h
|
|
|
|
Abstract:
|
|
|
|
This file contains debug printing constants for NBT.
|
|
|
|
Author:
|
|
|
|
Jim Stewart (Jimst) 10-2-92
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _DEBUGNBT_H
|
|
#define _DEBUGNBT_H
|
|
|
|
//
|
|
// Debug support.. this macro defines a check on a global flag that
|
|
// selectively enables and disables debugging in different parts of NBT
|
|
// NbtDebug is a global ULONG declared in driver.c
|
|
//
|
|
#if DBG
|
|
extern ULONG NbtDebug;
|
|
#endif // DBG
|
|
|
|
// Assert support
|
|
|
|
#if DBG
|
|
#undef ASSERT
|
|
#undef ASSERTMSG
|
|
|
|
#define ASSERT( exp ) \
|
|
if (!(exp)) { \
|
|
DbgPrint( "Assertion \"%s\" failed at file %s, line %d\n", #exp, __FILE__, __LINE__ ); \
|
|
if (NbtConfig.BreakOnAssert) \
|
|
DbgBreakPoint(); \
|
|
}
|
|
|
|
#define ASSERTMSG( msg, exp ) \
|
|
if (!exp) { \
|
|
DbgPrint( "Message: %s\nAssertion \"%s\" failed at file %s, line %d\n", msg, #exp, __FILE__, __LINE__ ); \
|
|
if (NbtConfig.BreakOnAssert) \
|
|
DbgBreakPoint(); \
|
|
}
|
|
|
|
#endif
|
|
|
|
#if DBG
|
|
#define IF_DBG(flags) if(NbtDebug & flags)
|
|
|
|
#define NBT_DEBUG_REGISTRY 0x00000001 // registry.c
|
|
#define NBT_DEBUG_DRIVER 0x00000002 // driver.c
|
|
#define NBT_DEBUG_NTUTIL 0x00000004 // ntutil.c
|
|
#define NBT_DEBUG_TDIADDR 0x00000008 // tdiaddr.c
|
|
#define NBT_DEBUG_TDICNCT 0x00000010 // tidaddr.c
|
|
#define NBT_DEBUG_NETBIOS_EX 0x00000020 // NETBIOS_EX address type debugging
|
|
#define NBT_DEBUG_NAME 0x00000040 // name.c
|
|
#define NBT_DEBUG_NTISOL 0x00000080 // ntisol.c
|
|
#define NBT_DEBUG_NBTUTILS 0x00000100 // nbtutils.c
|
|
#define NBT_DEBUG_NAMESRV 0x00000200 // namesrv.c
|
|
#define NBT_DEBUG_HNDLRS 0x00000400 // hndlrs.c
|
|
#define NBT_DEBUG_PROXY 0x00000800 // proxy.c
|
|
#define NBT_DEBUG_HASHTBL 0x00001000 // hashtbl.c
|
|
#define NBT_DEBUG_UDPSEND 0x00002000 // udpsend.c
|
|
#define NBT_DEBUG_TDIOUT 0x00004000 // tdiout.c
|
|
#define NBT_DEBUG_SEND 0x00008000 // sends
|
|
#define NBT_DEBUG_RCV 0x00010000 // rcvs
|
|
#define NBT_DEBUG_RCVIRP 0x00020000 // rcv irp processing
|
|
#define NBT_DEBUG_INDICATEBUFF 0x00040000 // tdihndlrs.c indicate buffer
|
|
#define NBT_DEBUG_REFRESH 0x00080000 // refresh logic
|
|
#define NBT_DEBUG_REF 0x00100000 // reference counts
|
|
#define NBT_DEBUG_DISCONNECT 0x00200000 // Disconnects
|
|
#define NBT_DEBUG_FILLIRP 0x00400000 // Filling the Irp(Rcv)
|
|
#define NBT_DEBUG_LMHOST 0x00800000 // Lmhost file stuff
|
|
#define NBT_DEBUG_FASTPATH 0x01000000 // Rcv code - fast path
|
|
#define NBT_DEBUG_WINS 0x02000000 // Wins Interface debug
|
|
#define NBT_DEBUG_PNP_POWER 0x04000000 // NT PNP debugging
|
|
#define NBT_DEBUG_HANDLES 0x08000000 // To debug Handle RefCount issues
|
|
#define NBT_DEBUG_TDIHNDLR 0x10000000 // tdihndlr.c
|
|
#define NBT_DEBUG_MEMFREE 0x20000000 // memory alloc/free
|
|
#define NBT_DEBUG_KDPRINTS 0x80000000 // KdPrint output
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Remove Debug spew on Debug builds!
|
|
//
|
|
#ifndef VXD
|
|
#undef KdPrint
|
|
#define KdPrint(_x_) \
|
|
if (NbtDebug & NBT_DEBUG_KDPRINTS) \
|
|
{ \
|
|
DbgPrint _x_; \
|
|
}
|
|
#endif // !VXD
|
|
//----------------------------------------------------------------------------
|
|
|
|
#else
|
|
#define IF_DBG(flags)
|
|
#endif
|
|
|
|
/*
|
|
* Software Tracing
|
|
*/
|
|
#define WPP_CONTROL_GUIDS WPP_DEFINE_CONTROL_GUID(CtlGuid,(bca7bd7f,b0bf,4051,99f4,03cfe79664c1), \
|
|
WPP_DEFINE_BIT(NBT_TRACE_PNP) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_NAMESRV) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_INBOUND) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_OUTBOUND) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_DISCONNECT) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_SEND) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_RECV) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_SENDDGRAM) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_RECVDGRAM) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_LOCALNAMES) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_REMOTECACHE) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_PROXY) \
|
|
WPP_DEFINE_BIT(NBT_TRACE_VERBOSE) \
|
|
)
|
|
|
|
/*
|
|
* Software tracing is available only in checked build
|
|
*/
|
|
#if DBG
|
|
#ifndef _NBT_WMI_SOFTWARE_TRACING_
|
|
#define _NBT_WMI_SOFTWARE_TRACING_
|
|
#endif
|
|
#else
|
|
#ifdef _NBT_WMI_SOFTWARE_TRACING_
|
|
#undef _NBT_WMI_SOFTWARE_TRACING_
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef _NBT_WMI_SOFTWARE_TRACING_
|
|
/*
|
|
* Totally turn off software tracing
|
|
*/
|
|
# define NbtTrace(l,m)
|
|
# define WPP_ENABLED() (0)
|
|
# define WPP_LEVEL_ENABLED(LEVEL) (0)
|
|
#define WPP_LOGNBTNAME(x)
|
|
#else
|
|
int nbtlog_strnlen(char *p, int n);
|
|
static CHAR NBTLOGNAME=0;
|
|
#define WPP_LOGNBTNAME(x) \
|
|
WPP_LOGPAIR(nbtlog_strnlen((char*)x,15),x) WPP_LOGPAIR(1,&NBTLOGNAME)
|
|
#endif
|
|
|
|
#endif
|