バグ チェック 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 を実行する必要があります。