Debugging Tools for Windows

Bug Check 0xD2: BUGCODE_ID_DRIVER

The BUGCODE_ID_DRIVER bug check has a value of 0x000000D2. This indicates that a problem occurred with an NDIS driver.

Parameters

Before this bug check occurs, a message is sent to the DbgPrint buffer. If a debugger is connected, this message will be displayed.

This message indicates the type of violation. The meanings of the bug check parameters depend on this message.

Parameter 1 Parameter 2 Parameter 3 Parameter 4 Message and Cause
Address of the miniport block Number of bytes requested 0 1 Allocating shared memory at raised IRQL. A driver called NdisMAllocateSharedMemory with IRQL >= DISPATCH_LEVEL.
Address of the miniport block The Status value submitted to NdisMResetComplete The AddressingReset value submitted to NdisMResetComplete 0 Completing reset when one is not pending. A driver called NdisMResetComplete, but no reset was pending.
Address of the miniport block Memory page containing address being freed Address of shared memory signature Virtual address being freed Freeing shared memory not allocated. A driver called NdisMFreeSharedMemory or NdisMFreeSharedMemoryAsync with an address that is not located in NDIS shared memory.
Address of the miniport block Address of the packet that is incorrectly included in the packet array Address of the packet array Number of packets in the array Indicating packet not owned by it. The miniport's packet array is corrupt.
Address of the MiniBlock Address of the driver object 0 0 NdisAddDevice: AddDevice called with a MiniBlock that is not on the NdisMiniDriverList.
Address of the MiniBlock The MiniBlock's reference count 0 0 NdisMUnload: MiniBlock is getting unloaded but it is still on NdisMiniDriverList.
Address of the miniport block Memory page Wrapper context Address of shared memory signature Overwrote past allocated shared memory. The address being written to is not located in NDIS shared memory.

In the following instances of this bug check, the meaning of the parameters depends on the message and on the value of Parameter 4.

Parameter 1 Parameter 2 Parameter 3 Parameter 4 Message and Cause
Address of the miniport block Address of the miniport interrupt Address of the miniport timer queue 1 Unloading without deregistering interrupt. A miniport driver failed its initialization without deregistering its interrupt.
Address of the miniport block Address of the miniport timer queue Address of the miniport interrupt 2 Unloading without deregistering interrupt. A miniport driver did not deregister its interrupt during the halt process.
Address of the miniport block Address of the miniport interrupt Address of the miniport timer queue 1 Unloading without deregistering timer. A miniport driver failed its initialization without successfully canceling all its timers.
Address of the miniport block Address of the miniport timer queue Address of the miniport interrupt 2 Unloading without deregistering timer. A miniport driver halted without successfully canceling all its timers.

Comments

This bug check code only occurs on Windows 2000 and Windows XP. In Windows Server 2003 and later, the corresponding code is bug check 0x7C (BUGCODE_NDIS_DRIVER).

On the checked build of Windows, only the Allocating Shared Memory at Raised IRQL and Completing Reset When One is Not Pending instances of this bug check can occur. All the other instances of bug check 0xD2 are replaced with ASSERTs. See Breaking Into the Debugger for details.

Build machine: CAPEBUILD