bug 检查 0x15E:BUGCODE_NDIS_DRIVER_LIVE_DUMP
BUGCODE_NDIS_DRIVER_LIVE_DUMP 实时转储的值为 0x0000015E。 此 bug 代码指示 NDIS 已捕获实时内核转储。 在这种情况下,NDIS 不会生成 bug 检查。
BUGCODE_NDIS_DRIVER 参数
参数 1 表示违规类型。 其他参数的含义取决于参数 1 的值。 如果参数的值为“0”,则表示未使用此参数。
0x01 |
NDIS_BUGCHECK_MINIPORT_FATAL_ERROR
微型端口驱动程序遇到致命错误并请求重新枚举。 |
微型端口块的地址。 请使用此地址运行 !ndiskd.minidriver 获取详细信息。 |
微型端口的物理设备对象 (PDO) 的地址 |
导致执行此实时转储的致命错误。 可能的值:
- 70:由用户模式引起
- 71:由 NdisMRemoveMiniport 引起
- 72:由 NdisIMInitializeDeviceInstanceEx 失败引起
- 73:由 MiniportRestart 失败引起
- 74:由 OID_PNP_SET_POWER (D0) 请求失败引起
- 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 中发生。