Debugging Tools for Windows

Enabling NDIS Debug Tracing By Setting Registry Values

You can enable different levels of debug tracing in various NDIS components by editing the registry. Typically, you should add the following entries and values to the HKLM\SYSTEM\CurrentControlSet\Services\NDIS\Parameters registry key:

"DebugLevel"=dword:00000000
"DebugSystems"=dword:000030F3
"DebugBreakPoint"=dword:00000001 

The following values are acceptable for DebugBreakPoint, DebugLevel and DebugSystems:

DebugBreakPoint
Controls whether an NDIS driver will automatically break into the debugger. If this value is set to 1, NDIS will break into the debugger when a driver enters Ndis.sys's DriverEntry function.
DebugLevel
Selects the level or amount of debug tracing in the NDIS components that you select with the DebugSystems value. This corresponds to using the !ndiskd.dbglevel extension. The following values specify levels that you can select:
Level Description Value
DBG_LEVEL_INFO All available debug information. This is the highest level of trace. 0x00000000
DBG_LEVEL_LOG Log information. 0x00000800
DBG_LEVEL_WARN Warnings. 0x00001000
DBG_LEVEL_ERR Errors. 0x00002000
DBG_LEVEL_FATAL Fatal errors, which can cause the operating system to crash. This is the lowest level of trace. 0x00003000

DebugSystems
Enables debug tracing for specified NDIS components. This corresponds to using the !ndiskd.dbgsystems extension. The following values specify the NDIS components that you can select:
Component Description Value
DBG_COMP_INIT Handles adapter initialization. 0x00000001
DBG_COMP_CONFIG Handles adapter configuration. 0x00000002
DBG_COMP_SEND Handles sending data over the network. 0x00000004
DBG_COMP_RECV Handles receiving data from the network. 0x00000008
DBG_COMP_PROTOCOL Handles protocol operations. 0x00000010
DBG_COMP_BIND Handles binding operations. 0x00000020
DBG_COMP_BUSINFO Handles bus queries. 0x00000040
DBG_COMP_REG Handles registry operations. 0x00000080
DBG_COMP_MEMORY Handles memory management. 0x00000100
DBG_COMP_FILTER Handles filter operations. 0x00000200
DBG_COMP_REQUEST Handles requests. 0x00000400
DBG_COMP_WORK_ITEM Handles work-item operations. 0x00000800
DBG_COMP_PNP Handles Plug and Play operations. 0x00001000
DBG_COMP_PM Handles power management operations. 0x00002000
DBG_COMP_OPENREF Handles operations that open reference objects. 0x00004000
DBG_COMP_LOCKS Handles locking operations. 0x00008000
DBG_COMP_RESET Handles resetting operations. 0x00010000
DBG_COMP_WMI Handles Windows Management Instrumentation operations. 0x00020000
DBG_COMP_CO Handles Connection-Oriented NDIS. 0x00040000
DBG_COMP_REF Handles reference operations. 0x00080000
DBG_COMP_ALL Handles all NDIS components. 0xFFFFFFFF

You can select more than one NDIS component. If more than one component is selected, combine the data values with an OR operator. For example, to select DBG_COMP_PNP, DBG_COMP_PM, DBG_COMP_INIT and DBG_COMP_CONFIG, you would combine the corresponding values (0x1000, 0x2000, 0x1, and 0x2) to obtain the value 0x3003, and then set it in the registry thus:

"DebugSystems"=dword:00003003

Whenever you change registry values for debug tracing, you must restart your computer for the new settings to take effect.

Build machine: CAPEBUILD