145 lines
5.1 KiB
C
145 lines
5.1 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ppdebug.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This header defines debug macros for the Plug and Play subsystem.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Adrian J. Oney (AdriaO) Sept 14, 2000.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
|
||
|
--*/
|
||
|
|
||
|
//#define DBG_SCOPE 1 // Enable SOME DBG stuff on ALL builds
|
||
|
#define DBG_SCOPE DBG // Enable only on DBG build
|
||
|
|
||
|
/*++
|
||
|
|
||
|
Debug output is filtered at two levels: A global level and a component
|
||
|
specific level.
|
||
|
|
||
|
Each debug output request specifies a component id and a filter level
|
||
|
or mask. These variables are used to access the debug print filter
|
||
|
database maintained by the system. The component id selects a 32-bit
|
||
|
mask value and the level either specified a bit within that mask or is
|
||
|
as mask value itself.
|
||
|
|
||
|
If any of the bits specified by the level or mask are set in either the
|
||
|
component mask or the global mask, then the debug output is permitted.
|
||
|
Otherwise, the debug output is filtered and not printed.
|
||
|
|
||
|
The component mask for filtering the debug output of this component is
|
||
|
Kd_NTOSPNP_Mask and may be set via the registry or the kernel debugger.
|
||
|
|
||
|
The global mask for filtering the debug output of all components is
|
||
|
Kd_WIN2000_Mask and may be set via the registry or the kernel debugger.
|
||
|
|
||
|
The registry key for setting the mask value for this component is:
|
||
|
|
||
|
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\
|
||
|
Debug Print Filter\NTOSPNP
|
||
|
|
||
|
The key "Debug Print Filter" may have to be created in order to create
|
||
|
the component key.
|
||
|
|
||
|
Pnp is divided into the following sub-components for debug spew.
|
||
|
1. LOADUNLOAD: AddDevice, UnloadDriver etc
|
||
|
2. RESOURCE: Allocation, rebalance etc
|
||
|
3. ENUMERATION: Starts, enumerations etc
|
||
|
4. IOAPI: IO APIs etc
|
||
|
5. IOEVENT: IO events etc
|
||
|
6. MAPPER: Firmware mapper etc
|
||
|
7. PNPBIOS: PnP BIOS etc
|
||
|
Each sub-component gets 5 debug levels. The error level for each component
|
||
|
maps to the default error level.
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#define IOP_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_WARNING_LEVEL DPFLTR_WARNING_LEVEL
|
||
|
#define IOP_TRACE_LEVEL DPFLTR_TRACE_LEVEL
|
||
|
#define IOP_INFO_LEVEL DPFLTR_INFO_LEVEL
|
||
|
|
||
|
#define IOP_LOADUNLOAD_LEVEL (DPFLTR_INFO_LEVEL + 1)
|
||
|
#define IOP_RESOURCE_LEVEL (DPFLTR_INFO_LEVEL + 5)
|
||
|
#define IOP_ENUMERATION_LEVEL (DPFLTR_INFO_LEVEL + 9)
|
||
|
#define IOP_IOAPI_LEVEL (DPFLTR_INFO_LEVEL + 13)
|
||
|
#define IOP_IOEVENT_LEVEL (DPFLTR_INFO_LEVEL + 17)
|
||
|
#define IOP_MAPPER_LEVEL (DPFLTR_INFO_LEVEL + 21)
|
||
|
#define IOP_PNPBIOS_LEVEL (DPFLTR_INFO_LEVEL + 25)
|
||
|
|
||
|
//
|
||
|
// All error levels map to the default error level.
|
||
|
//
|
||
|
#define IOP_LOADUNLOAD_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_RESOURCE_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_ENUMERATION_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_IOAPI_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_IOEVENT_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_MAPPER_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
#define IOP_PNPBIOS_ERROR_LEVEL DPFLTR_ERROR_LEVEL
|
||
|
//
|
||
|
// Component sublevels are based off the component base level.
|
||
|
//
|
||
|
#define IOP_LOADUNLOAD_WARNING_LEVEL (IOP_LOADUNLOAD_LEVEL + 0)
|
||
|
#define IOP_LOADUNLOAD_TRACE_LEVEL (IOP_LOADUNLOAD_LEVEL + 1)
|
||
|
#define IOP_LOADUNLOAD_INFO_LEVEL (IOP_LOADUNLOAD_LEVEL + 2)
|
||
|
#define IOP_LOADUNLOAD_VERBOSE_LEVEL (IOP_LOADUNLOAD_LEVEL + 3)
|
||
|
|
||
|
#define IOP_RESOURCE_WARNING_LEVEL (IOP_RESOURCE_LEVEL + 0)
|
||
|
#define IOP_RESOURCE_TRACE_LEVEL (IOP_RESOURCE_LEVEL + 1)
|
||
|
#define IOP_RESOURCE_INFO_LEVEL (IOP_RESOURCE_LEVEL + 2)
|
||
|
#define IOP_RESOURCE_VERBOSE_LEVEL (IOP_RESOURCE_LEVEL + 3)
|
||
|
|
||
|
#define IOP_ENUMERATION_WARNING_LEVEL (IOP_ENUMERATION_LEVEL + 0)
|
||
|
#define IOP_ENUMERATION_TRACE_LEVEL (IOP_ENUMERATION_LEVEL + 1)
|
||
|
#define IOP_ENUMERATION_INFO_LEVEL (IOP_ENUMERATION_LEVEL + 2)
|
||
|
#define IOP_ENUMERATION_VERBOSE_LEVEL (IOP_ENUMERATION_LEVEL + 3)
|
||
|
|
||
|
#define IOP_IOAPI_WARNING_LEVEL (IOP_IOAPI_LEVEL + 0)
|
||
|
#define IOP_IOAPI_TRACE_LEVEL (IOP_IOAPI_LEVEL + 1)
|
||
|
#define IOP_IOAPI_INFO_LEVEL (IOP_IOAPI_LEVEL + 2)
|
||
|
#define IOP_IOAPI_VERBOSE_LEVEL (IOP_IOAPI_LEVEL + 3)
|
||
|
|
||
|
#define IOP_IOEVENT_WARNING_LEVEL (IOP_IOEVENT_LEVEL + 0)
|
||
|
#define IOP_IOEVENT_TRACE_LEVEL (IOP_IOEVENT_LEVEL + 1)
|
||
|
#define IOP_IOEVENT_INFO_LEVEL (IOP_IOEVENT_LEVEL + 2)
|
||
|
#define IOP_IOEVENT_VERBOSE_LEVEL (IOP_IOEVENT_LEVEL + 3)
|
||
|
|
||
|
#define IOP_MAPPER_WARNING_LEVEL (IOP_MAPPER_LEVEL + 0)
|
||
|
#define IOP_MAPPER_TRACE_LEVEL (IOP_MAPPER_LEVEL + 1)
|
||
|
#define IOP_MAPPER_INFO_LEVEL (IOP_MAPPER_LEVEL + 2)
|
||
|
#define IOP_MAPPER_VERBOSE_LEVEL (IOP_MAPPER_LEVEL + 3)
|
||
|
|
||
|
#define IOP_PNPBIOS_WARNING_LEVEL (IOP_PNPBIOS_LEVEL + 0)
|
||
|
#define IOP_PNPBIOS_TRACE_LEVEL (IOP_PNPBIOS_LEVEL + 1)
|
||
|
#define IOP_PNPBIOS_INFO_LEVEL (IOP_PNPBIOS_LEVEL + 2)
|
||
|
#define IOP_PNPBIOS_VERBOSE_LEVEL (IOP_PNPBIOS_LEVEL + 3)
|
||
|
|
||
|
#if DBG
|
||
|
|
||
|
ULONG
|
||
|
IopDebugPrint (
|
||
|
IN ULONG Level,
|
||
|
IN PCHAR Format,
|
||
|
...
|
||
|
);
|
||
|
|
||
|
#define IopDbgPrint(m) IopDebugPrint m
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define IopDbgPrint(m)
|
||
|
|
||
|
#endif
|
||
|
|