Fonction PoQueryWatchdogTime (wdm.h)
La routine PoQueryWatchdogTime indique si le gestionnaire d’alimentation a activé un compteur de délai d’attente de surveillance pour toute IRP d’alimentation actuellement affectée à la pile d’appareils.
Syntaxe
BOOLEAN PoQueryWatchdogTime(
[in] PDEVICE_OBJECT Pdo,
[out] PULONG SecondsRemaining
);
Paramètres
[in] Pdo
Pointeur vers un objet d’appareil physique (PDO). Ce paramètre pointe vers une structure DEVICE_OBJECT qui représente un appareil physique.
[out] SecondsRemaining
Pointeur vers un emplacement dans lequel la routine écrit l’heure, en secondes, qui reste avant que le délai d’arrêt de surveillance de l’alimentation suivant soit défini.
Valeur retournée
PoQueryWatchdogTime retourne TRUE si un IRP d’alimentation avec surveillance est actuellement affecté à la pile des appareils. Sinon, il retourne FALSE.
Remarques
Cette routine permet aux pilotes en mode noyau de surveiller les compteurs de délai d’attente que le gestionnaire d’alimentation a activés pour suivre les irps d’alimentation qu’il a émis. Si un ou plusieurs compteurs de délai d’attente de surveillance sont actuellement activés, la routine retourne TRUE et fournit la durée restante avant le délai d’expiration suivant.
Par exemple, un pilote qui subit des retards lors de l’arrêt d’un appareil peut appeler cette routine pour déterminer le temps qu’il reste avant que le pilote ne réponde à une IRP d’alimentation pour empêcher un arrêt contrôlé (un bogue case activée) du système d’exploitation.
Le gestionnaire d’alimentation définit un compteur de délai d’attente de surveillance lorsqu’il émet un IRP d’alimentation sur la pile de l’appareil. Le délai d’expiration de ce compteur est généralement de plusieurs minutes. Si un appareil de la pile ne répond pas et provoque le blocage de l’IRP pendant la période d’expiration, le gestionnaire d’alimentation traite cette condition comme une erreur irrécupérable et lance un arrêt contrôlé du système d’exploitation.
Si plusieurs délai d’attente de surveillance de l’alimentation sont actuellement activés, la routine définit *SecondsRemaining sur l’heure restante au délai d’expiration suivant.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 7. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |