Bug Check 0x15E: BUGCODE_NDIS_DRIVER_LIVE_DUMP

The BUGCODE_NDIS_DRIVER_LIVE_DUMP live dump has a value of 0x0000015E. This bug code indicates that NDIS has captured a live kernel dump. NDIS does not generate a bug check in this situation.

BUGCODE_NDIS_DRIVER Parameters

Parameter 1 indicates the type of violation. The meaning of the other parameters depends on the value of Parameter 1. If a Parameter's value is "0," that means it is not used.

Parameter 1 Parameter 1 Value and Cause of Error Parameter 2 Parameter 3 Parameter 4

0x01

NDIS_BUGCHECK_MINIPORT_FATAL_ERROR

A miniport driver has encountered a fatal error and requested re-enumeration.

The address of the miniport block. Run !ndiskd.minidriver with this address for more information.

The address of the miniport's Physical Device Object (PDO)

The fatal error that caused this live dump to be taken. Possible values:

  1. 70: Caused by user mode
  2. 71: Caused by NdisMRemoveMiniport
  3. 72: Caused by NdisIMInitializeDeviceInstanceEx failing
  4. 73: Caused by MiniportRestart failing
  5. 74: Caused by failing a OID_PNP_SET_POWER (D0) request
  6. 75: Caused by failing a OID_PNP_SET_POWER (Dx) request

0x25

NDIS_BUGCHECK_WATCHDOG

An attempt to manage the network stack has taken too long. When NDIS calls out into other drivers, NDIS starts a watchdog timer to ensure the call completes promptly. If the call takes too long, NDIS injects a bugcheck.

This can be caused by a simple deadlock. Look with "!stacks 2 ndis" or similar to see if any threads look suspicious. Pay special attention to the PrimaryThread from the NDIS_WATCHDOG_TRIAGE_BLOCK.

This can be caused by lost NBLs, in which case !ndiskd.pendingnbls may help. Check for OIDs that are stuck using !ndiskd.oid.

The operation that took too long. Possible values:

  • 0x01 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_PAUSE

    There was a timeout while pausing a protocol driver.

  • 0x02 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_NETPNPEVENT

    There was a timeout while delivering a NET_PNP_EVENT_NOTIFICATION to a protocol driver.

  • 0x03 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_STATUS_INDICATION

    There was a timeout while delivering a status indication to a protocol driver.

  • 0x04 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_UNBIND

    There was a timeout while unbinding a protocol driver.

  • 0x11 : NDIS_BUGCHECK_WATCHDOG_FILTER_PAUSE

    There was a timeout while pausing a filter driver.

  • 0x12 : NDIS_BUGCHECK_WATCHDOG_FILTER_NETPNPEVENT

    There was a timeout while delivering a NET_PNP_EVENT_NOTIFICATION to a filter driver.

  • 0x13 : NDIS_BUGCHECK_WATCHDOG_FILTER_STATUS_INDICATION

    There was a timeout while delivering a status indication to a filter driver.

  • 0x14 : NDIS_BUGCHECK_WATCHDOG_FILTER_DETACH

    There was a timeout while detaching a filter driver.

  • 0x21 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_PAUSE

    There was a timeout while pausing a miniport adapter.

  • 0x22 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_HALT

    There was a timeout while halting a miniport adapter.

  • 0x23 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_OID

    There was a timeout while delivering an OID request to a miniport adapter.

  • 0x24 : NDIS_BUGCHECK_WATCHDOG_FILTER_OID

    There was a timeout while delivering an OID request to a filter driver.

  • 0x25 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_IDLE

    There was a timeout while idling a miniport adapter.

  • 0x26 : NDIS_BUGCHECK_WATCHDOG_CANCEL_IDLE

    There was a timeout while canceling an idle request on a miniport adapter.

Cast to ndis!NDIS_WATCHDOG_TRIAGE_BLOCK. Useful fields:

  • StartTime shows what time the operation started, in 100ns units, as returned by KeQueryInterruptTime.
  • TimeoutMilliseconds shows how long NDIS waited, at a minimum, before triggering this bugcheck.
  • TargetObject is a handle to the protocol, filter module, or miniport adapter that NDIS is waiting on. Run !ndiskd.protocol, !ndiskd.filter, or !ndiskd.netadapter with this handle for more information.
  • PrimaryThread is the thread on which NDIS initiated the operation. Usually, this is the first place to look, although the thread may have gone elsewhere if the operation is being handled asynchronously.

The value of Parameter 4 depends on the value of Parameter 2. Each number in this list corresponds to the same number in Parameter 2.

  • 0x01 : 0
  • 0x02 : The NET_PNP_EVENT_CODE of the stuck event. For more information about these codes, see NET_PNP_EVENT..
  • 0x03 : The NDIS_STATUS code of the stuck indication. Use !ndiskd.help to decode it.
  • 0x04 : 0
  • 0x11 : 0
  • 0x12 : The NET_PNP_EVENT_CODE of the stuck event. For possible values, see the previous list of values for item 2 in this list.
  • 0x13 : The NDIS_STATUS code of the stuck indication. Use !ndiskd.help to decode it.
  • 0x14 : 0
  • 0x21 : 0
  • 0x22 : 0
  • 0x23 : The OID code of the stuck request. Use !ndiskd.help to decode it.
  • 0x24 : The OID code of the stuck request. Use !ndiskd.help to decode it.
  • 0x25 : 0
  • 0x26 : 0

0x30

NDIS_BUGCHECK_STUCK_NBL

A miniport driver has not returned a NBL back to the stack for some time.

The address of the miniport block. Run !ndiskd.minidriver with this address for more information.

0

0

Cause

The !analyze debug extension displays information about the bug check and can be helpful in determining the root cause. Parameter 1 indicates the specific cause of the BUGCODE_NDIS_DRIVER_LIVE_DUMP bugcheck.

Remarks

NDIS has detected and recovered from a serious problem in another network driver. Although the system was not halted, this problem may later cause connectivity problems or a fatal bugcheck.

This bug code occurs only in Windows 8.1 and later versions of Windows.