次の方法で共有


バグ チェック 0x4000008A: THREAD_TERMINATE_HELD_MUTEX

THREAD_TERMINATE_HELD_MUTEX バグ チェックには、0x4000008A の値があります。 これは、ドライバーがミューテックスを解放する前に終了したスレッドでミューテックスを取得したことを示します。 これは、ミューテックスを解放せずにユーザー モードに戻るドライバー、またはミューテックスを取得するドライバーによって発生し、実行されているスレッドが終了する例外が発生した場合に発生する可能性があります。

重要

この記事は、プログラマー向けです。 コンピューターを使用中に、ブルー スクリーン エラーが表示された場合は、「ブルー スクリーン エラーのトラブルシューティング」を参照してください。

THREAD_TERMINATE_HELD_MUTEX パラメーター

パラメーター 説明
1 KMUTEX を所有する KTHREAD のアドレス。
2 所有されている KMUTEX のアドレス。
3 予約されています。
4 予約されています。

原因

!analyze デバッグ拡張機能は、バグ チェックに関する情報を表示し、根本原因の特定に役立ちます。

調査するには、コールスタックを調べます。 システム例外処理ルーチンとスレッド終了ルーチンに直接従うスタックにドライバーがある場合、このドライバーには、問題があり、修正する必要があります。これにより、ミューテックス保持中の未処理の例外を防ぐことができます。 スタックに通常のスレッド終了コードが表示され、ドライバーが関係していない場合は、!pool を実行するか、ミューテックスのアドレス (パラメーター 2) で ln (List Nearest Symbols) を使用して、その所有者を検出できるかどうかを確認します。 このバグは、ほぼ確実にそのミューテックスの所有者のコードにあります。