KeQueryDpcWatchdogInformation 関数 (wdm.h)
KeQueryDpcWatchdogInformation ルーチンは、現在のプロセッサの遅延プロシージャ 呼び出し (DPC) ウォッチドッグ タイマー値を返します。
構文
NTSTATUS KeQueryDpcWatchdogInformation(
[out] PKDPC_WATCHDOG_INFORMATION WatchdogInformation
);
パラメーター
[out] WatchdogInformation
呼び出し元が指定した KDPC_WATCHDOG_INFORMATION 構造体へのポインター。 ルーチンは、現在の DPC ウォッチドッグ タイマー値をこの構造体に書き込みます。
戻り値
KeQueryDpcWatchdogInformation は NTSTATUS 値を返します。 可能な戻り値には、次の状態コードが含まれます。
リターン コード | 説明 |
---|---|
|
DPC が現在のプロセッサで実行されている間、KeQueryDpcWatchdogInformation が呼び出されました。 |
|
KeQueryDpcWatchdogInformation が呼び出されたときに、現在のプロセッサで DPC が実行されていませんでした。 |
注釈
KeQueryDpcWatchdogInformation ルーチンは、DPC ルーチンから呼び出すか、IRQL= DISPATCH_LEVELで呼び出して、DPC タイムアウトが発生するまでの時間を決定できます。 オペレーティング システムは、DPC ウォッチドッグ タイマーを実装して、単一の DPC ルーチンが実行される時間が長すぎる場合、またはキューに登録された一連の DPC ルーチンが実行される時間が長すぎる場合を検出します。 DPC タイムアウト エラーが有効になっており、DPC ルーチンが 1 つのルーチンの制限時間を超えた場合、または一連の DPC ルーチンが集計時間制限を超えた場合は、DPC_WATCHDOG_VIOLATION (0x133) のバグチェック発生します。
現在のプロセッサの IRQL= DISPATCH_LEVEL 以降で DPC が実行されている間、または呼び出されている間に KeQueryDpcWatchdogInformation を呼び出す必要があります。 それ以外の場合、呼び出しは失敗し、STATUS_UNSUCCESSFULを返します。
DPC ルーチンは短時間だけ実行し、ワーカー スレッドにできるだけ多くの処理を委任する必要があります。 システムの応答性の低下を回避するために、一般的な DPC ルーチンは、呼び出されるたびに 100 マイクロ秒以下で実行する必要があります。 詳細については、「 DPC ルーチンを記述するためのガイドライン」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |