TIMER_OR_DPC_INVALID bug 检查的值为 0x000000C7。 如果在不允许内核计时器或延迟过程调用(DPC)的某个位置找到,则会发出此问题。
重要
这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。
TIMER_OR_DPC_INVALID参数
参数 1 | 参数 2 | 参数 3 | 参数 4 | 错误原因 |
---|---|---|---|---|
0x0 |
计时器对象的地址 |
正在检查的内存范围的开始 |
正在检查的内存范围的结束 |
计时器对象是在不允许计时器对象的内存块中找到的。 . |
0x1 |
DPC 对象的地址 |
正在检查的内存范围的开始 |
正在检查的内存范围的结束 |
在不允许 DPC 对象的内存块中找到 DPC 对象。 |
0x2 |
DPC 例程的地址 |
正在检查的内存范围的开始 |
正在检查的内存范围的结束 |
DPC 例程是在不允许 DPC 对象的内存块中找到的。 |
0x3 |
DPC 对象的地址 |
处理器编号 |
系统中的处理器数 |
DPC 对象的处理器编号不正确。 |
0x4 |
DPC 例程的地址 |
线程的 APC 在内核调用 DPC 例程之前禁用计数 |
调用 DPC 例程后线程的 APC 禁用计数 |
线程的 APC 禁用计数在 DPC 例程执行期间已更改。 每次驱动程序调用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或获取互斥体时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 时,APC 禁用计数都会递增。 |
0x5 |
DPC 例程的地址 |
线程的 APC 在内核调用 DPC 例程之前禁用计数 |
调用 DPC 例程后线程的 APC 禁用计数 |
线程的 APC 禁用计数在执行计时器 DPC 例程期间已更改。 每次驱动程序调用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或获取互斥体时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 时,APC 禁用计数都会递增。 |
原因
这种情况通常是驱动程序在释放其所在的内存之前未能取消计时器或 DPC 造成的。
决议
如果你是驱动程序编写器,请使用通过此 bug 检查获取的信息来修复代码中的 bug。
如果你是系统管理员,则如果问题仍然存在,则应卸载驱动程序。