Funzione PoQueryWatchdogTime (ntifs.h)
La routine PoQueryWatchdogTime indica se il risparmio energia ha abilitato un contatore di timeout watchdog per qualsiasi IRP di alimentazione attualmente assegnato allo stack di dispositivi.
Sintassi
BOOLEAN PoQueryWatchdogTime(
[in] PDEVICE_OBJECT Pdo,
[out] PULONG SecondsRemaining
);
Parametri
[in] Pdo
Puntatore a un oggetto dispositivo fisico (PDO). Questo parametro punta a una struttura DEVICE_OBJECT che rappresenta un dispositivo fisico.
[out] SecondsRemaining
Puntatore a una posizione in cui la routine scrive il tempo, in secondi, che rimane prima che venga impostato il timeout del watchdog di alimentazione successivo.
Valore restituito
PoQueryWatchdogTime restituisce TRUE se un IRP di alimentazione abilitato per watchdog è attualmente assegnato allo stack di dispositivi. In caso contrario, restituisce FALSE.
Commenti
Questa routine consente ai driver in modalità kernel di monitorare i contatori di timeout watchdog che il risparmio energia ha abilitato per tenere traccia dei runtime di integrazione di alimentazione rilasciati. Se uno o più contatori di timeout watchdog sono attualmente abilitati, la routine restituisce TRUE e fornisce la quantità di tempo rimanente prima del timeout successivo.
Ad esempio, un driver che riscontra ritardi durante l'arresto di un dispositivo può chiamare questa routine per determinare quanto tempo rimane prima che il driver risponda a un IRP di alimentazione per impedire un arresto controllato (un controllo di bug) del sistema operativo.
Il risparmio energia imposta un contatore di timeout watchdog quando rilascia un IRP di alimentazione allo stack di dispositivi. Il periodo di timeout per questo contatore è in genere di alcuni minuti. Se un dispositivo nello stack non risponde e fa sì che l'IRP si blocchi per il periodo di timeout, il risparmio energia considera questa condizione come un errore irreversibile e avvia un arresto controllato del sistema operativo.
Se è attualmente abilitato più timeout di Power Watchdog, la routine imposta *SecondsRemaining sul tempo che rimane al timeout successivo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |