錯誤檢查0x4000008A:THREAD_TERMINATE_HELD_MUTEX

THREAD_TERMINATE_HELD_MUTEX錯誤檢查的 值為 0x4000008A。 這表示驅動程式在可以釋放 mutex 之前結束的執行緒上取得 mutex。 這可能是由驅動程式返回使用者模式而不需要釋放 Mutex 或驅動程式取得 mutex,然後造成例外狀況導致執行緒執行時終止。

重要

本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解

THREAD_TERMINATE_HELD_MUTEX參數

參數 描述
1 擁有 KMUTEX 之 KTHREAD 的位址。
2 所擁有 KMUTEX 的位址。
3 保留
4 保留

原因

!analyze 偵錯延伸模組會顯示錯誤檢查的相關資訊,有助於判斷根本原因。

若要調查,請查看 callstack。 如果堆疊上有直接接在系統例外狀況處理常式之後的驅動程式,然後執行緒終止常式,此驅動程式就會發生錯誤,而且必須修正,如此一來,它就不會在保存核心 Mutex 時造成未處理的例外狀況。 如果堆疊只顯示一般執行緒終止程式碼,而且沒有任何驅動程式受到影響,請執行 !pool 或使用 ln (List Nearest Symbols) 在 mutex (參數 2) 位址上,並查看您是否可以探索擁有它的人員。 這個 Bug 幾乎一定位於該 Mutex 擁有者的程式碼中。