mirror of https://github.com/tongzx/nt5src
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.
136 lines
2.7 KiB
136 lines
2.7 KiB
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
ksdebug.h
|
|
|
|
Abstract:
|
|
|
|
Debug header.
|
|
|
|
--*/
|
|
|
|
#if !defined(_KSDEBUG_)
|
|
#define _KSDEBUG_
|
|
|
|
#if !defined(REMIND)
|
|
|
|
#define QUOTE(x) #x
|
|
#define QQUOTE(y) QUOTE(y)
|
|
#define REMIND(str) __FILE__ "(" QQUOTE(__LINE__) ") : " str
|
|
|
|
#endif // !defined(REMIND)
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif // defined(__cplusplus)
|
|
|
|
#if defined(_NTDDK_)
|
|
|
|
#define DEBUGLVL_BLAB 3
|
|
#define DEBUGLVL_VERBOSE 2
|
|
#define DEBUGLVL_TERSE 1
|
|
#define DEBUGLVL_ERROR 0
|
|
|
|
#if (DBG)
|
|
#if !defined( DEBUG_LEVEL )
|
|
#if defined( DEBUG_VARIABLE )
|
|
#if defined( KSDEBUG_INIT )
|
|
ULONG DEBUG_VARIABLE = DEBUGLVL_TERSE;
|
|
#else
|
|
extern ULONG DEBUG_VARIABLE;
|
|
#endif
|
|
#else
|
|
#define DEBUG_VARIABLE DEBUGLVL_TERSE
|
|
#endif
|
|
#else
|
|
#if defined( DEBUG_VARIABLE )
|
|
#if defined( KSDEBUG_INIT )
|
|
ULONG DEBUG_VARIABLE = DEBUG_LEVEL;
|
|
#else
|
|
extern ULONG DEBUG_VARIABLE;
|
|
#endif
|
|
#else
|
|
#define DEBUG_VARIABLE DEBUG_LEVEL
|
|
#endif
|
|
#endif
|
|
|
|
#define _DbgPrintF(lvl, strings) \
|
|
{ \
|
|
if (((lvl)==DEBUG_VARIABLE) || (lvl < DEBUG_VARIABLE)) {\
|
|
DbgPrint(STR_MODULENAME);\
|
|
DbgPrint##strings;\
|
|
DbgPrint("\n");\
|
|
if ((lvl) == DEBUGLVL_ERROR) {\
|
|
DbgBreakPoint();\
|
|
} \
|
|
} \
|
|
}
|
|
|
|
#define _DbgPrintFEx(component, lvl, strings) \
|
|
{ \
|
|
if ((lvl) <= DEBUG_VARIABLE) {\
|
|
DbgPrintEx(component, lvl, STR_MODULENAME);\
|
|
DbgPrintEx(component, lvl, strings);\
|
|
DbgPrintEx(component, lvl, "\n");\
|
|
if ((lvl) == DEBUGLVL_ERROR) {\
|
|
DbgBreakPoint();\
|
|
} \
|
|
} \
|
|
}
|
|
#else // !DBG
|
|
#define _DbgPrintF(lvl, strings)
|
|
#define _DbgPrintFEx(component, lvl, strings)
|
|
#endif // !DBG
|
|
|
|
#endif // !defined(_NTDDK_)
|
|
|
|
//
|
|
// macros
|
|
//
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif // defined(__cplusplus)
|
|
|
|
//
|
|
// constants
|
|
//
|
|
|
|
#if (DBG)
|
|
|
|
#if defined(IRPMJFUNCDESC)
|
|
static const PCHAR IrpMjFuncDesc[] =
|
|
{
|
|
"IRP_MJ_CREATE",
|
|
"IRP_MJ_CREATE_NAMED_PIPE",
|
|
"IRP_MJ_CLOSE",
|
|
"IRP_MJ_READ",
|
|
"IRP_MJ_WRITE",
|
|
"IRP_MJ_QUERY_INFORMATION",
|
|
"IRP_MJ_SET_INFORMATION",
|
|
"IRP_MJ_QUERY_EA",
|
|
"IRP_MJ_SET_EA",
|
|
"IRP_MJ_FLUSH_BUFFERS",
|
|
"IRP_MJ_QUERY_VOLUME_INFORMATION",
|
|
"IRP_MJ_SET_VOLUME_INFORMATION",
|
|
"IRP_MJ_DIRECTORY_CONTROL",
|
|
"IRP_MJ_FILE_SYSTEM_CONTROL",
|
|
"IRP_MJ_DEVICE_CONTROL",
|
|
"IRP_MJ_INTERNAL_DEVICE_CONTROL",
|
|
"IRP_MJ_SHUTDOWN",
|
|
"IRP_MJ_LOCK_CONTROL",
|
|
"IRP_MJ_CLEANUP",
|
|
"IRP_MJ_CREATE_MAILSLOT",
|
|
"IRP_MJ_QUERY_SECURITY",
|
|
"IRP_MJ_SET_SECURITY",
|
|
"IRP_MJ_SET_POWER",
|
|
"IRP_MJ_QUERY_POWER"
|
|
};
|
|
#endif // defined(IRPMJFUNCDESC)
|
|
|
|
#endif // DBG
|
|
|
|
#endif // !_KSDEBUG_
|