PoQueryWatchdogTime 関数 (wdm.h)

PoQueryWatchdogTime ルーチンは、現在デバイス スタックに割り当てられているすべての電源 IRP に対して、電源マネージャーがウォッチドッグ タイムアウト カウンターを有効にしているかどうかを示します。

構文

BOOLEAN PoQueryWatchdogTime(
  [in]  PDEVICE_OBJECT Pdo,
  [out] PULONG         SecondsRemaining
);

パラメーター

[in] Pdo

物理デバイス オブジェクト (PDO) へのポインター。 このパラメーターは、物理デバイスを表す DEVICE_OBJECT 構造体を指します。

[out] SecondsRemaining

次の電源ウォッチドッグタイムアウトが発生するように設定される前に、ルーチンが時間を秒単位で書き込む場所へのポインター。

戻り値

ウォッチドッグ対応の電源 IRP が現在デバイス スタックに割り当てられている場合、PoQueryWatchdogTimeTRUE を返します。 それ以外の場合は、 FALSE を返します

注釈

このルーチンを使用すると、カーネル モード ドライバーは、電源マネージャーが有効にしたウォッチドッグ タイムアウト カウンターを監視して、発行された電源 IRP を追跡できます。 1 つ以上のウォッチドッグ タイムアウト カウンターが現在有効になっている場合、ルーチンは TRUE を 返し、次回のタイムアウトまでに残る時間を提供します。

たとえば、デバイスのシャットダウン時に遅延が発生するドライバーは、このルーチンを呼び出して、オペレーティング システムの制御されたシャットダウン (バグ チェック) を防ぐために、ドライバーが電源 IRP に応答するまでの時間を決定できます。

電源マネージャーは、デバイス スタックに電源 IRP を発行するときにウォッチドッグ タイムアウト カウンターを設定します。 このカウンターのタイムアウト期間は、通常数分です。 スタック内のデバイスが応答しない状態で、タイムアウト期間に IRP が停止した場合、電源マネージャーはこの状態を回復不可能なエラーとして扱い、オペレーティング システムの制御されたシャットダウンを開始します。

現在、複数のパワー ウォッチドッグ タイムアウトが有効になっている場合、ルーチンは *SecondsRemaining を次回のタイムアウトまでの時間に設定します。

要件

要件
サポートされている最小のクライアント Windows 7 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

DEVICE_OBJECT