バグ チェック 0xEA: THREAD_STUCK_IN_DEVICE_DRIVER

THREAD_STUCK_IN_DEVICE_DRIVER バグ チェックの値が 0x000000EA になっています。 これは、デバイス ドライバーのスレッドが無限にスピンしていることを示します。

重要

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

THREAD_STUCK_IN_DEVICE_DRIVER パラメーター

パラメーター 説明

1

スタックしているスレッド オブジェクトへのポインター

2

DEFERRED_WATCHDOG オブジェクトへのポインター

3

問題のあるドライバー名へのポインター

4

カーネル デバッガー内: "インターセプトされた" バグチェック 0xEA がヒットした回数

ブルー スクリーン上: 1

原因

デバイス ドライバーが無限ループでスピンしています。ハードウェアがアイドル状態になるのを待っていると考えられます。

これは通常、ハードウェア自体、またはデバイス ドライバーがハードウェアを正しくプログラミングしない問題を示しています。 多くの場合、この原因は不適切なビデオ カードまたは不適切なディスプレイ ドライバーです。

解決方法

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

パラメーター 1 と共に .thread (レジスタ コンテキストの設定) コマンドを使用します。 次に、kb (スタック バックトレースの表示) を使って、スレッドがスタックしている場所を見つけます。

Windows がタイムアウト状態を検出したときにカーネル デバッガーが既に接続され、実行されている場合。 その後、KeBugCheckEx の代わりに DbgBreakPoint が呼び出されます。 詳細なメッセージがデバッガーに出力されます。 詳しくは、「デバッグへの出力の送信」をご覧ください。

このメッセージには、バグ チェック パラメーターの内容が含められます。 実際のバグ チェックが発行されていないため、.bugcheck (バグ チェック データの表示) コマンドは機能しません。 これらの 4 つのパラメーターは、32 ビット システムでは dd watchdog!g_WdBugCheckData L5" を使用し、64 ビット システムでは dq watchdog!g_WdBugCheckData L5" を使用することにより、ウォッチドッグのグローバル変数から取得することもできます。

このような対話型の手法でこのエラーをデバッグすると、問題のあるスレッドを見つけたり、ブレークポイントを設定したりした後、g (移動) を使用してスピン コードに戻り、さらにデバッグすることができます。

マルチプロセッサ マシン (OS ビルド 3790 以前) では、スピン スレッドがハードウェア割り込みによって中断され、バグ チェックの時点で ISR または DPC ルーチンが実行されている場合、タイムアウトになる可能性があります。 これは、タイムアウトの作業項目を、2 番目の CPU で同じ時刻に配信して処理できるためです。 これが発生した場合、問題のあるスレッドのスタックを詳しく調べ、タイムアウトの原因となったスピン コードを特定する必要があります。 これを行うには、dds (ワードとシンボルの表示) コマンドを使用します。