Freigeben über


PoQueryWatchdogTime-Funktion (ntifs.h)

Die PoQueryWatchdogTime- Routine gibt an, ob der Power Manager einen Watchdog-Timeoutzähler für alle Strom-IRP aktiviert hat, die derzeit dem Gerätestapel zugewiesen sind.

Syntax

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

Parameter

[in] Pdo

Ein Zeiger auf ein physisches Geräteobjekt (PDO). Dieser Parameter verweist auf eine DEVICE_OBJECT Struktur, die ein physisches Gerät darstellt.

[out] SecondsRemaining

Ein Zeiger auf eine Position, in die die Routine die Zeit in Sekunden schreibt, die verbleibt, bevor das nächste Power Watchdog-Timeout eintritt.

Rückgabewert

PoQueryWatchdogTime- GIBT TRUE zurück, wenn dem Gerätestapel derzeit ein Watchdog-fähiges Power-IRP zugewiesen ist. Andernfalls wird FALSE zurückgegeben.

Bemerkungen

Diese Routine ermöglicht Es Kernelmodustreibern, Watchdog-Timeoutzähler zu überwachen, die der Power Manager aktiviert hat, um power IRPs nachzuverfolgen, die er ausgegeben hat. Wenn ein oder mehrere Watchdog-Timeoutzähler derzeit aktiviert sind, gibt die Routine TRUE zurück und stellt die Zeitspanne bereit, die vor dem nächsten Timeout verbleibt.

Beispielsweise kann ein Treiber, der beim Herunterfahren eines Geräts Verzögerungen erlebt, diese Routine aufrufen, um festzustellen, wie viel Zeit bleibt, bevor der Treiber auf ein Leistungs-IRP reagieren muss, um ein kontrolliertes Herunterfahren (eine Fehlerüberprüfung) des Betriebssystems zu verhindern.

Der Power Manager legt einen Watchdog-Timeoutzähler fest, wenn ein Strom-IRP auf den Gerätestapel ausgibt. Der Timeoutzeitraum für diesen Zähler beträgt in der Regel mehrere Minuten. Wenn ein Gerät im Stapel nicht reagiert und bewirkt, dass das IRP für den Timeoutzeitraum angehalten wird, behandelt der Power Manager diese Bedingung als nicht behebbaren Fehler und initiiert ein kontrolliertes Herunterfahren des Betriebssystems.

Wenn derzeit mehr als ein Power Watchdog-Timeout aktiviert ist, legt die Routine *SecondsRemaining auf die Zeit fest, die beim nächsten Timeout bleibt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 7
Zielplattform- Universal
Header- ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= DISPATCH_LEVEL

Siehe auch

DEVICE_OBJECT