bug 检查 0x15E:BUGCODE_NDIS_DRIVER_LIVE_DUMP

BUGCODE_NDIS_DRIVER_LIVE_DUMP 实时转储的值为 0x0000015E。 此 bug 代码指示 NDIS 已捕获实时内核转储。 在这种情况下,NDIS 不会生成 bug 检查。

BUGCODE_NDIS_DRIVER 参数

参数 1 表示违规类型。 其他参数的含义取决于参数 1 的值。 如果参数的值为“0”,则表示未使用此参数。

参数 1 参数 1 值和错误原因 参数 2 参数 3 参数 4

0x01

NDIS_BUGCHECK_MINIPORT_FATAL_ERROR

微型端口驱动程序遇到致命错误并请求重新枚举。

微型端口块的地址。 请使用此地址运行 !ndiskd.minidriver 获取详细信息。

微型端口的物理设备对象 (PDO) 的地址

导致执行此实时转储的致命错误。 可能的值:

  1. 70:由用户模式引起
  2. 71:由 NdisMRemoveMiniport 引起
  3. 72:由 NdisIMInitializeDeviceInstanceEx 失败引起
  4. 73:由 MiniportRestart 失败引起
  5. 74:由 OID_PNP_SET_POWER (D0) 请求失败引起
  6. 75:由 OID_PNP_SET_POWER (Dx) 请求失败引起

0x25

NDIS_BUGCHECK_WATCHDOG

管理网络堆栈的尝试耗时过长。 当 NDIS 调用其他驱动程序时,NDIS 会启动监视器计时器,以确保调用及时完成。 如果调用时间过长,NDIS 会注入 Bug 检查。

这可能是由简单的死锁造成的。 使用“!stacks 2 ndis”或类似命令查看是否有可疑线程。 请特别注意 NDIS_WATCHDOG_TRIAGE_BLOCK中的 PrimaryThread。

这可能是 NBL 丢失造成的,在这种情况下 !ndiskd.pendingnbls 可能会有所帮助。 检查使用 !ndiskd.oid 卡住的 OID。

操作耗时过长。 可能的值:

  • 0x01 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_PAUSE

    暂停协议驱动程序时出现超时。

  • 0x02 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_NETPNPEVENT

    向协议驱动程序传送 NET_PNP_EVENT_NOTIFICATION 时出现超时。

  • 0x03 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_STATUS_INDICATION

    向协议驱动程序传送状态指示时出现超时。

  • 0x04 : NDIS_BUGCHECK_WATCHDOG_PROTOCOL_UNBIND

    取消绑定协议驱动程序时出现超时。

  • 0x11 : NDIS_BUGCHECK_WATCHDOG_FILTER_PAUSE

    暂停筛选器驱动程序时出现超时。

  • 0x12 : NDIS_BUGCHECK_WATCHDOG_FILTER_NETPNPEVENT

    向筛选器驱动程序传送 NET_PNP_EVENT_NOTIFICATION 时出现超时。

  • 0x13 : NDIS_BUGCHECK_WATCHDOG_FILTER_STATUS_INDICATION

    向筛选器驱动程序传送状态指示时出现超时。

  • 0x14 : NDIS_BUGCHECK_WATCHDOG_FILTER_DETACH

    拆离筛选器驱动程序时出现超时。

  • 0x21 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_PAUSE

    暂停微型端口适配器时出现超时。

  • 0x22 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_HALT

    停止微型端口适配器时出现超时。

  • 0x23 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_OID

    向微型端口适配器传送 OID 请求时超时。

  • 0x24 : NDIS_BUGCHECK_WATCHDOG_FILTER_OID

    向筛选器驱动程序传送 OID 请求时出现超时。

  • 0x25 : NDIS_BUGCHECK_WATCHDOG_MINIPORT_IDLE

    闲置微型端口适配器时出现超时。

  • 0x26 : NDIS_BUGCHECK_WATCHDOG_CANCEL_IDLE

    取消微型端口适配器上的空闲请求时出现超时。

强制转换为 ndis!NDIS_WATCHDOG_TRIAGE_BLOCK。 有用的字段:

  • StartTime 显示 KeQueryInterruptTime 返回的操作启动时间,以 100ns 为单位。
  • TimeoutMilliseconds 显示在触发此 bugcheck 之前,NDIS 至少等待了多长时间。
  • TargetObject 是 NDIS 正在等待的协议、筛选器模块或微型端口适配器的句柄。 请使用此句柄运行 !ndiskd.protocol!ndiskd.filter!ndiskd.netadapter,获取更多信息。
  • PrimaryThread 是 NDIS 启动操作的线程。 这通常是第一个查找位置,尽管如果操作是异步处理的,线程可能已去往其他位置。

参数 4 的值取决于参数 2 的值。 此列表中的每个数字都与参数 2 中的相同数字相对应。

  • 0x01 : 0
  • 0x02:卡住事件的 NET_PNP_EVENT_CODE。 有关这些代码的详细信息,请参阅 NET_PNP_EVENT
  • 0x03:卡住指示的 NDIS_STATUS 代码。 使用 !ndiskd.help 对其进行解码。
  • 0x04 : 0
  • 0x11 : 0
  • 0x12:卡住事件的 NET_PNP_EVENT_CODE。 有关可能的值,请参阅此列表中第 2 项的上一个值列表。
  • 0x13:卡住指示的 NDIS_STATUS 代码。 使用 !ndiskd.help 对其进行解码。
  • 0x14 : 0
  • 0x21 : 0
  • 0x22 : 0
  • 0x23:卡住请求的 OID 代码。 使用 !ndiskd.help 对其进行解码。
  • 0x24:卡住请求的 OID 代码。 使用 !ndiskd.help 对其进行解码。
  • 0x25 : 0
  • 0x26 : 0

0x30

NDIS_BUGCHECK_STUCK_NBL

微型端口驱动程序一段时间没有将 NBL 返回回堆栈。

微型端口块的地址。 请使用此地址运行 !ndiskd.minidriver 获取详细信息。

0

0

原因

!analyze 调试扩展显示有关 bug 检查的信息,并有助于确定根本原因。 参数 1 表示 BUGCODE_NDIS_DRIVER_LIVE_DUMP bug 检查的具体原因。

注解

NDIS 已检测到另一个网络驱动程序中的严重问题并从中恢复。 尽管系统未停止,但此问题以后可能会导致连接问题或致命 bug 检查。

此 bug 代码仅在 Windows 8.1 及更高版本的 Windows 中发生。