バグ チェックの0x133: DPC_WATCHDOG_VIOLATION

DPC_WATCHDOG_VIOLATIONバグ チェックの値は 0x00000133 です。 このバグ チェックは、DPC ウォッチドッグが実行されたことを示しています。これは、実行時間の長い 1 つの遅延プロシージャ コール (DPC) が検出されたか、システムが DISPATCH_LEVEL 以上の割り込み要求レベル (IRQL) で長時間を費やしたためです。

パラメーター 1 の値は、単一の DPC がタイムアウトを超えたかどうか、またはシステムが IRQL DISPATCH_LEVEL 以上で長期間を累積して費やしたかどうかを示します。 DPC は 100 マイクロ秒より長く実行しないでください。ISR は 25 マイクロ秒より長く実行しないでくださいが、システムの実際のタイムアウト値ははるかに高く設定されます。

DPC の詳細については、「 DPC オブジェクトWindows Internals 7th Edition Part 1 の概要」(Pavel Yosifovich、Mark E. Russinovich、David A. ソロモン、Alex Ionescu) を参照してください。

重要

この記事はプログラマー向けです。 コンピューターの使用中にブルー スクリーン エラー コードを受け取ったお客様は、「 ブルー スクリーン エラーのトラブルシューティング」を参照してください。

DPC_WATCHDOG_VIOLATION パラメーター

パラメーター 1 は、違反の種類を示します。 他のパラメーターの意味は、 パラメーター 1 の値によって異なります。

パラメーター 1 パラメータ 2 パラメーター 3 パラメーター 4 エラーの原因
0 DPC 時間数 (ティック単位) DPC 時間割り当て (ティック単位)。 nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK。この単一の DPC タイムアウトに関する追加情報が含まれています 1 つの DPC または ISR が時間割り当てを超えました。 問題のあるコンポーネントは、通常、スタック トレースで識別できます。
1 ウォッチドッグ期間 nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK。この単一の DPC タイムアウトに関する追加情報が含まれています 予約済み システムは、IRQL DISPATCH_LEVEL 以上で長期間を累積して費やしました。 問題のあるコンポーネントは、通常、スタック トレースで識別できます。

原因

原因を特定するには、Windows デバッガー、プログラミング エクスペリエンス、および障害が発生しているモジュールのソース コードへのアクセスが必要です。

詳細については、以下のトピックを参照してください。

Windows デバッガー (WinDbg) を使用したクラッシュ ダンプ分析

WinDbg によるカーネルモード ダンプ ファイルの分析

!analyze 拡張機能!analyze の使用

Windows DPC の詳細については、「 Windows Internals 7th Edition Part 1 by Pavel Yosifovich、Mark E. Russinovich、David A. ソロモン、Alex Ionescu」を参照してください。

例 1

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

パラメーター 1 = 0

この例では、ティック数 501 が DPC 時間割り当て 500 を超えています。 イメージ名は、バグが発生したときにこのコードが実行されたことを示チェック。

0: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

DPC_WATCHDOG_VIOLATION (133)
The DPC watchdog detected a prolonged run time at an IRQL of DISPATCH_LEVEL
or above.
Arguments:
Arg1: 0000000000000000, A single DPC or ISR exceeded its time allotment. The offending
    component can usually be identified with a stack trace.
Arg2: 0000000000000501, The DPC time count (in ticks).
Arg3: 0000000000000500, The DPC time allotment (in ticks).
Arg4: 0000000000000000

...

IMAGE_NAME:  BthA2DP.sys
...

次のデバッガー コマンドを使用して、パラメーターが 0 のエラーの詳細情報を収集します。

k (スタック バックトレースの表示) を使用して、停止コードが発生したときに実行されていたコードを確認します。

u、ub、uu (組み立て) コマンドを使用して、実行中のコードの詳細を詳しく調じることがあります。

!pcr 拡張機能は、特定のプロセッサのプロセッサ制御領域 (PCR) の現在の状態を表示します。 出力は Prcb のアドレスになります

0: kd> !pcr
KPCR for Processor 0 at fffff8035f5a4000:
    Major 1 Minor 1
	NtTib.ExceptionList: fffff80368e77fb0
	    NtTib.StackBase: fffff80368e76000
	   NtTib.StackLimit: 0000000000000000
	 NtTib.SubSystemTib: fffff8035f5a4000
	      NtTib.Version: 000000005f5a4180
	  NtTib.UserPointer: fffff8035f5a4870
	      NtTib.SelfTib: 000000b6d3086000

	            SelfPcr: 0000000000000000
	               Prcb: fffff8035f5a4180
	               Irql: 0000000000000000
	                IRR: 0000000000000000
	                IDR: 0000000000000000
	      InterruptMode: 0000000000000000
	                IDT: 0000000000000000
	                GDT: 0000000000000000
	                TSS: 0000000000000000

	      CurrentThread: fffff80364926a00
	         NextThread: ffffe40b77c12040
	         IdleThread: fffff80364926a00

dt (Display Type) コマンドを使用すると、DPC と DPC ウォッチドッグに関する追加情報を表示できます。 アドレスには、!pcr 出力に記載されている Prcb を使用します。

dt nt!_KPRCB fffff80309974180 Dpc* 
0: kd> dt nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK fffff803648fa320
   +0x000 Signature        : 0xaebecede
   +0x004 Revision         : 1
   +0x006 Size             : 0x10
   +0x008 DpcWatchdogProfileOffset : 0x84a8
   +0x00c DpcWatchdogProfileLength : 0x8200

例 2

パラメーター 1 = 1

パラメーター 1 の場合、コードは問題のあるコード領域で停止しない可能性があります。 この場合の 1 つの方法は、イベント トレースを使用して、通常の実行時間を超えるドライバーを追跡することです。

!analyze デバッグ拡張機能を使用して、バグ チェックに関する情報を表示します。

0: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

DPC_WATCHDOG_VIOLATION (133)
The DPC watchdog detected a prolonged run time at an IRQL of DISPATCH_LEVEL
or above.
Arguments:
Arg1: 0000000000000001, The system cumulatively spent an extended period of time at
	DISPATCH_LEVEL or above. The offending component can usually be
	identified with a stack trace.
Arg2: 0000000000001e00, The watchdog period.
Arg3: fffff803648fa320, cast to nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK, which contains
	additional information regarding the cumulative timeout
Arg4: 0000000000000000

nt! のアドレスをキャストします。DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCKに関する情報を表示します。

0: kd> dt nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK fffff803648fa320
   +0x000 Signature        : 0xaebecede
   +0x004 Revision         : 1
   +0x006 Size             : 0x10
   +0x008 DpcWatchdogProfileOffset : 0x84a8
   +0x00c DpcWatchdogProfileLength : 0x8200

!dpcs コマンドを使用して、キューに入った DPC を表示します。

3: kd> !dpcs
CPU Type      KDPC       Function
 0: Normal  : 0xfffff8035f5ac290 0xfffff80363e15630 nt!PpmPerfAction
Failed to read DPC at 0xffffe40b77190dd8
 0: Threaded: 0xfffff8035f5ac3d8 0xfffff80363f27d70 nt!KiDpcWatchdog

解決方法

特定の原因を特定し、コード修正を作成するには、エラーが発生しているモジュールのソース コードへのプログラミング エクスペリエンスとアクセスが必要です。

注釈

一般に、この停止コードは、特定の条件下では割り当てられた時間枠内でその作業を完了しないドライバー コードの障害が原因で発生します。

この問題に対して Windows デバッガーを使用する機能がない場合は、いくつかの基本的なトラブルシューティング手法を使用する必要があります。

  • バグ チェック メッセージでドライバーが識別された場合、問題を特定するには、ドライバーを無効にします。 ドライバーの更新プログラムについては、製造元に確認してください。

  • バグ チェック 0x133の原因となっているデバイスまたはドライバーを特定するのに役立つ可能性がある追加のエラー メッセージについては、システム ログイン イベント ビューアーを確認します。

  • インストールされている新しいハードウェアが、インストールされているバージョンの Windows と互換性があることを確認します。 たとえば、Windows 10の場合、Windows 10仕様で必要なハードウェアに関する情報を取得できます。

  • その他の一般的なトラブルシューティング情報については、「 ブルー スクリーン データ」を参照してください。

こちらもご覧ください

Windows デバッガー (WinDbg) を使用したクラッシュ ダンプ分析

WinDbg によるカーネルモード ダンプ ファイルの分析

バグ チェック コード リファレンス