Funzione PoSetSystemWake (wdm.h)
La routine PoSetSystemWake contrassegna l'IRP specificato come uno che ha contribuito a riattivare il sistema da uno stato di sospensione.
Sintassi
void PoSetSystemWake(
[in, out] PIRP Irp
);
Parametri
[in, out] Irp
Puntatore all'IRP di attesa/riattivazione.
Valore restituito
nessuno
Osservazioni
I driver chiamano PoSetSystemWake per contrassegnare un IRP_MN_WAIT_WAKE IRP per contribuire alla riattivazione del sistema da uno stato di sospensione. Per impostazione predefinita, i runtime di integrazione di attesa/riattivazione vengono considerati irP di riattivazione del dispositivo. È responsabilità del dispositivo terminale in una catena di attesa/riattivazione determinare se si è svegliato il sistema e chiamare PoSetSystemWake per l'IRP di attesa/riattivazione del terminale. Quando un driver chiama PoSetSystemWake su un IRP, viene contrassegnato come aver contribuito a riattivare il sistema da uno stato di sospensione. Un solo driver in uno stack deve chiamare questa routine e normalmente deve essere il driver dell'autobus in uno stack di driver.
Tutti gli altri driver in una catena di attesa/riattivazione possono chiamare PoGetSystemWake per i propri IRP di attesa/riattivazione al completamento per determinare se devono chiamare PoSetSystemWake su eventuali irP di attesa/riattivazione figlio che stanno per essere completati. Ciò garantisce che le informazioni di riattivazione del sistema progredisca correttamente in tutta la catena di attesa/riattivazione.
Al termine di un IRP di attesa/riattivazione, il risparmio energia controlla se l'IRP è contrassegnato come IRP di riattivazione del sistema. Se l'IRP è contrassegnato come IRP di riattivazione del sistema, il risparmio energia aggiunge l'IRP a un elenco interno dei dispositivi che hanno svegliato il sistema. Tuttavia, il risparmio energia tiene traccia solo dei dispositivi più specifici che funzionano con il sistema. Ad esempio, se il dispositivo A viene aggiunto come dispositivo che ha svegliato il sistema e quindi il dispositivo B, figlio del dispositivo A, viene aggiunto anche, il risparmio energia mantiene solo il dispositivo B nell'elenco perché il dispositivo B è il più specifico. Se il risparmio energia non è in grado di determinare il dispositivo più specifico che ha svegliato il sistema, il risparmio energia potrebbe tenere traccia di più di un dispositivo che ha segnalato che si è svegliato il sistema.
Il risparmio energia registra un evento ETW (Event Tracing for Windows) (visualizzabile nel canale di sistema globale) che include informazioni sui dispositivi che si sono svegliati nel sistema.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows Vista. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |