DPC_WATCHDOG_TIMEOUT 参数

参数说明
1DPC 看门狗超时间隔(以标称时钟滴答为单位)。
2挂起处理器的 PRCB 地址。
3保留
4保留
Windows 蓝屏代码 0x102:DPC_WATCHDOG_TIMEOUT

DPC_WATCHDOG_TIMEOUT 错误检查的值为 0x00000102.
这表明 DPC 看门狗例程没有在分配的时间间隔内执行。

on it road .com

原因

此错误检查通常意味着 ISR 挂在低于时钟级别和高于调度级别的 IRQL,或者 DPC 例程挂在指定的处理器上。

例如,对于 StorPort 微型端口驱动程序,StorPort.sys 在以 DISPATCH_LEVEL 运行的例程中处理 I/O 完成,并串行调用刚刚完成的所有 IRP 的 I/O 完成例程。
如果 I/O 完成例程单独或者一起花费太多时间,键盘和/或者鼠标可能会停止响应。
也有可能是 Windows DPC 看门狗计时器例程将决定 StorPort 例程花费过多的时间来完成。

解决方法

存储堆栈中的内核驱动程序可以通过对驱动程序的 I/O 完成例程进行有效编码来降低出现问题的可能性。
如果在完成例程中仍然无法在足够的时间内完成所有必要的处理,则例程可以为 I/O 工作创建一个工作元素,将该元素排入工作队列并返回 STATUS_MORE_PROCESSING_REQUIRED;驱动程序的工作线程然后应该找到工作元素,执行工作并为 IRP 执行 IoCallerDriver 以确保 IRP 的进一步 I/O 处理。

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