バグ チェック 0x102: DPC_WATCHDOG_TIMEOUT

DPC_WATCHDOG_TIMEOUT バグ チェックの値は 0x00000102 です。 これは、割り当てられた時間間隔内に DPC ウォッチドッグ ルーチンが実行されなかったことを示します。

重要

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

DPC_WATCHDOG_TIMEOUT パラメーター

パラメーター 説明
1 DPC ウォッチドッグ タイムアウト間隔 (名目上クロック ティック)。
2 ハング プロセッサの PRCB アドレス。
3 予約済み
4 予約済み

原因

通常、このバグ チェックは、ISR がクロック レベルより低くディスパッチ レベルを超える IRQL でハングしているか、指定されたプロセッサで DPC ルーチンがハングしていることを意味します。

たとえば、StorPort Miniport ドライバーの場合、StorPort.sys は、DISPATCH_LEVEL で実行され、完了したすべての IRP の I/O 完了ルーチンをシリアルに呼び出すルーチンで I/O 完了を処理します。 I/O 完了ルーチンが単独または一緒に実行される時間が長すぎると、キーボードおよび/またはマウスの応答が停止する可能性があります。 また、Windows DPC ウォッチドッグ タイマー ルーチンは、StorPort ルーチンの完了に過剰な時間がかかったと判断する可能性もあります。

解決方法

ストレージ スタック内のカーネル ドライバーは、ドライバーの I/O 完了ルーチンを効率的にコーディングすることで、問題の可能性を減らすことができます。 完了ルーチンで必要なすべての処理を十分な時間内に実行できない場合、ルーチンは I/O 作業の作業要素を作成し、その要素を作業キューに入れ、STATUS_MORE_PROCESSING_REQUIRED を返すことができます。ドライバーのワーカー スレッドは、作業要素を検索し、作業を行い、IRP の I/O 処理を確認する IRP の IoCallerDriver を実行する必要があります。