The BUGCODE_NDIS_DRIVER bug check has a value of 0x0000007C. This bug check indicates that a problem occurred with an NDIS driver.
The following parameters appear on the blue screen. Parameter 1 indicates the type of violation. The meaning of the other parameters depends on the value of Parameter 1.
| Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause of Error |
| 0x01 | The address of the miniport block | The number of bytes that are requested | The current IRQL | A driver called NdisMAllocateSharedMemory at a raised IRQL. |
| 0x02 | The address of the miniport block | The shared memory page that was corrupted | The address of NDIS_WRAPPER_CONTEXT that keeps track of the driver's shared memory allocations | During a call to NdisMAllocateSharedMemory, NDIS detected that a previously-allocated shared memory page had been corrupted. |
| 0x03 | The address of the miniport block | The page that contains the shared memory | The virtual address of the shared memory | A driver called NdisMFreeSharedMemory[Async] with a shared memory pointer that had already been freed. |
| 0x04 | The address of NDIS_M_DRIVER_BLOCK | The address of DRIVER_OBJECT | 0 | AddDevice was called with a driver that is not on the list of drivers that are registered with NDIS.
(Enabled only on special instrumented NDIS.)
|
0x05 0x06 | The address of the miniport block | The address of the packet descriptor that the driver uses | The address of the packet array that contained this packet descriptor | An Ethernet driver indicated that it received a packet by using a packet descriptor that the protocol stack is currently using. |
| 0x07 | The address of the miniport block | The address of the packet descriptor that the driver uses | The address of the packet array that contained this packet descriptor | An FDDI driver indicated that it received a packet by using a packet descriptor that the protocol stack is currently using. |
| 0x08 | The address of the miniport block | The address of NDIS_MINIPORT_INTERRUPT | 0 | A miniport driver did not deregister its interrupt during the halt process. |
| 0x09 | The address of the miniport block | The address of the miniport driver's timer queue (NDIS_MINIPORT_TIMER) | 0 | A miniport driver stopped without successfully canceling all its timers. |
| 0x0A | The address of NDIS_M_DRIVER_BLOCK | The address of DRIVER_OBJECT | The reference count for the miniport driver | A miniport driver is getting unloaded prematurely. |
| 0x0B | The address of the miniport block | The address of NDIS_MINIPORT_INTERRUPT | 0 | A miniport driver failed its initialization without deregistering its interrupt. |
| 0x0C | The address of the miniport block | The address of the miniport driver's timer queue (NDIS_MINIPORT_TIMER) | 0 | A miniport driver failed its initialization without successfully canceling all its timers. |
| 0x0D | The address of the miniport block | The address of NDIS_MINIPORT_INTERRUPT | 0 | A miniport driver did not deregister its interrupt during the halt process. (The halt was called from the initialize routine after the miniport driver returned success from its initialize handler.) |
| 0x0E | The address of the miniport block | The address of the miniport driver's timer queue (NDIS_MINIPORT_TIMER) | 0 | A miniport driver stopped without successfully canceling all its timers. (The halt was called from the initialize routine after the miniport driver returned success from its initialize handler.) |
| 0x0F | The address of the miniport block | The reset status | AddressingReset (BOOLEAN) | A miniport driver called NdisMResetComplete without any pending reset request. |
| 0x10 | The address of the miniport block | The address of NDIS_MINIPORT_INTERRUPT | 0 | After resuming from a low-power state, a miniport driver failed its initialization without deregistering its interrupt. |
| 0x11 | The address of the miniport block | The address of the miniport driver's timer queue (NDIS_MINIPORT_TIMER) | 0 | After resuming from a low-power state, a miniport driver failed its initialization without successfully canceling all its timers. |
| 0x12 | The address of the miniport block | The address of the packet descriptor that the driver uses | The address of the packet array that contained this packet descriptor | A miniport driver indicated that it received a packet by using a packet descriptor that the protocol stack is currently using. |
| 0x13 | The address of the miniport block | The address of the packet descriptor that the driver uses | The address of the packet array that contained this packet descriptor | A Token-Ring miniport driver indicated that it received a packet by using a packet descriptor that the protocol stack currently uses. |
| 0x14 | The current IRQL value | 0 | 0 | An NDIS driver called NdisWaitEvent at IRQL > PASSIVE_LEVEL. The function must be called at IRQL = PASSIVE_LEVEL. |
| 0x15 | The address of the miniport block | 0 | 0 | An NDIS 6 miniport driver was calling an NDIS 5 API. An NDIS 6 miniport driver cannot call NdisMQueryInformationComplete or NdisMSetInformationComplete. |
| 0x16 | The address of the protocol block | The address of the context area that is allocated by the protocol driver | The address of the open block | NDIS encountered an invalid handle in a binding operation.
A protocol driver’s ProtocolBindAdapterEx function returned NDIS_STATUS_SUCCESS, either directly or asynchronously through NdisCompleteBindAdapterEx. However, the binding context information contains an invalid handle to a block that indicates the open state of the miniport adapter. In this case, the open handle is not NULL, but it cannot be referenced.
|
| 0x17 | The address of the interface provider block | 0 | 0 | The NDIS driver was attempting to deregister as a network interface provider while an interface was still registered. |
Parameter 1 indicates the specific cause of the BUGCODE_NDIS_DRIVER bug check.
If one of the bug check parameters specifies the address of the miniport block, you can obtain more information by using the !ndiskd.miniport debugger extension together with this address.
If one of the bug check parameters specifies the address of the packet descriptor that the driver uses, you can obtain more information by using the !ndiskd.pkt debugger extension together with this address.
This bug check code occurs only on Microsoft Windows Server 2003 and later versions of Windows. In Windows 2000 and Windows XP, the corresponding code is bug check 0xD2 (BUGCODE_ID_DRIVER).