THREAD_STUCK_IN_DEVICE_DRIVER 参数

参数描述
1指向卡住的线程对象的指针
2指向 DEFERRED_WATCHDOG 对象的指针
3指向违规驱动程序名称的指针
4在内核调试器中:“拦截”的错误检查 0xEA 被命中的次数
在蓝屏上:1

解决方法

将 .thread(设置寄存器上下文)命令与参数 1 一起使用。

然后使用kb(Display Stack Backtrace)找到线程卡住的位置。

如果在 Windows 检测到超时情况时内核调试器已连接并正在运行。
然后将调用 DbgBreakPoint 而不是 KeBugCheckEx 。
将向调试器打印详细消息。
有关详细信息,请参阅将输出发送到调试器。

此消息将包括错误检查参数。
因为没有发出实际的错误检查,.bugcheck(显示错误检查数据)命令将没有用。

也可以通过在 32 位系统上使用 dd watchdog!g_WdBugCheckData L5 " 或者在 64 位系统上使用 dq watchdog!g_WdBugCheckData L5 " 从 Watchdog 的全局变量中检索这四个参数。

像这样以交互方式调试此错误将使我们能够找到有问题的线程,其中设置断点,然后使用 g (Go) 返回到旋转代码以进一步调试它。

在多处理器机器(操作系统版本 3790 或者更早版本)上,如果自旋线程被硬件中断中断并且 ISR 或者 DPC 例程在错误检查时正在运行,则我们可以超时。
这是因为可以在第二个 CPU 上同时交付和处理超时的工作项。
如果发生这种情况,我们必须更深入地查看违规线程的堆栈以确定导致超时发生的旋转代码。
使用 dds(显示单词和符号)命令来执行此操作。

Windows 蓝屏代码 0xEA:THREAD_STUCK_IN_DEVICE_DRIVER

THREAD_STUCK_IN_DEVICE_DRIVER 错误检查的值为 0x000000EA。
这表明设备驱动程序中的线程正在无休止地旋转。

www. On IT Road .com

原因

设备驱动程序在无限循环中旋转,很可能在等待硬件空闲。

这通常表明硬件本身有问题,或者设备驱动程序对硬件的编程不正确。
通常,这是由坏的显卡或者坏的显示驱动程序造成的。

日期:2020-09-17 00:16:15 来源:oir作者:oir