之路教程 https://onitr oad .com
原因
这种情况通常是由于驱动程序在释放定时器或者 DPC 所在的内存之前未能取消它。
TIMER_OR_DPC_INVALID 错误检查的值为 0x000000C7.
如果在内存中的某处发现不允许的内核计时器或者延迟过程调用 (DPC),则会发出此消息。
TIMER_OR_DPC_INVALID 参数
参数 1 | 参数2 | 参数3 | 参数4 | 错误原因 |
---|---|---|---|---|
0x0 | 定时器对象地址 | 正在检查 | 的内存范围的开始 正在检查的内存范围的结束 | 在不允许使用计时器对象的内存块中发现计时器对象。. |
0x1 | DPC 对象的地址 | 正在检查 | 的内存范围开始 正在检查的内存范围结束 | 在不允许 DPC 对象的内存块中发现 DPC 对象。 |
0x2 | DPC 例程的地址 | 正在检查 | 的内存范围开始 正在检查的内存范围结束 | 在不允许 DPC 对象的内存块中发现 DPC 例程。 |
0x3 | DPC 对象的地址 | Processor number | 系统中 | 的处理器数量 DPC 对象的处理器编号不正确。 |
0x4 | DPC 例程 | 的地址内核调用 DPC 例程之前线程的 APC 禁用计数 调用 DPC 例程 | 后 | 线程的 APC 禁用计数 在 DPC 例程执行期间更改了线程的 APC 禁用计数。 每次驱动程序调用 KeEnterCriticalRegion、FsRtlEnterFileSystem 或者获取互斥锁时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、KeReleaseMutex 或者 FsRtlExitFileSystem 时,APC 禁用计数都会增加。 |
0x5 | DPC例程 | 的地址内核调用DPC例程之前线程的APC禁用计数调用DPC例程 | 后 | 线程的APC禁用计数在定时器DPC例程执行期间线程的APC禁用计数被更改。 每次驱动程序调用 KeEnterCriticalRegion、FsRtlEnterFileSystem 或者获取互斥锁时,APC 禁用计数都会递减。 每次驱动程序调用 KeLeaveCriticalRegion、KeReleaseMutex 或者 FsRtlExitFileSystem 时,APC 禁用计数都会增加。 |
解决方法
如果我们是驱动程序编写者,请使用通过此错误检查获得的信息来修复代码中的错误。
如果我们是系统管理员,如果问题仍然存在,我们应该卸载驱动程序。
日期:2020-09-17 00:16:10 来源:oir作者:oir