KeQueryDpcWatchdogInformation 関数 (wdm.h)

KeQueryDpcWatchdogInformation ルーチンは、現在のプロセッサの遅延プロシージャ 呼び出し (DPC) ウォッチドッグ タイマー値を返します。

構文

NTSTATUS KeQueryDpcWatchdogInformation(
  [out] PKDPC_WATCHDOG_INFORMATION WatchdogInformation
);

パラメーター

[out] WatchdogInformation

呼び出し元が指定した KDPC_WATCHDOG_INFORMATION 構造体へのポインター。 ルーチンは、現在の DPC ウォッチドッグ タイマー値をこの構造体に書き込みます。

戻り値

KeQueryDpcWatchdogInformation は NTSTATUS 値を返します。 可能な戻り値には、次の状態コードが含まれます。

リターン コード 説明
STATUS_SUCCESS
DPC が現在のプロセッサで実行されている間、KeQueryDpcWatchdogInformation が呼び出されました。
STATUS_UNSUCCESSFUL
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

こちらもご覧ください

KDPC_WATCHDOG_INFORMATION