THREAD_TERMINATE_HELD_MUTEX 错误检查的值为 0x4000008A。
这表明驱动程序在可以释放互斥锁之前退出的线程上获取了互斥锁。
这可能是由于驱动程序返回用户模式而不释放互斥锁或者驱动程序获取互斥锁然后导致异常导致运行它的线程被终止。
之路教程 https://onitr oad .com
原因
要进行调查,请查看调用堆栈。
如果堆栈上有一个驱动程序直接跟随系统异常处理例程,然后是线程终止例程,则该驱动程序有问题,需要修复,以便在持有内核互斥锁时不会导致未处理的异常。
如果堆栈只显示正常的线程终止代码并且没有涉及驱动程序,请在互斥锁(参数 2)的地址上运行 !pool 或者使用 ln(列出最近的符号),看看是否可以发现谁拥有它。
这个错误几乎肯定会出现在该互斥锁所有者的代码中。
THREAD_TERMINATE_HELD_MUTEX 参数
参数 | 描述 |
---|---|
1 | 拥有 KMUTEX 的 KTHREAD 的地址。 |
2 | 拥有的 KMUTEX 的地址。 |
3 | 保留 |
4 | 保留 |
日期:2020-09-17 00:15:55 来源:oir作者:oir