Bug Check 0x7C: BUGCODE_NDIS_DRIVER
The BUGCODE_NDIS_DRIVER bug check has a value of 0x0000007C. This bug check indicates that a problem occurred with an NDIS driver.
Important Info If You Have Received a STOP Code
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss. A hardware device, its driver, or related software might have caused this error. If your copy of Windows came with your computer, call the manufacturer of your computer. If you purchased Windows separately from your computer, Microsoft provides support. To find contact info for Microsoft or your computer manufacturer, Contact Support.
If you have experience with computers and want to try to recover from this error, follow the steps provided in the Microsoft article Resolving STOP (Blue Screen) Errors in Windows.
These actions might prevent an error like this from happening again:
- Download and install updates and device drivers for your computer from Windows Update.
- Scan your computer for computer viruses.
- Check your hard disk for errors.
BUGCODE_NDIS_DRIVER Parameters
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. |
Cause
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 !ndiskd.miniport 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 !ndiskd.pkt together with this address.
Remarks
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).
Send comments about this topic to Microsoft
Build date: 4/9/2013
