Partager via


Fonction PoSetSystemWake (wdm.h)

La routine PoSetSystemWake marque l’IRP spécifié comme ayant contribué à réveiller le système d’un état de veille.

Syntaxe

void PoSetSystemWake(
  [in, out] PIRP Irp
);

Paramètres

[in, out] Irp

Pointeur vers l’IRP d’attente/veille.

Valeur de retour

None

Remarques

Les pilotes appellent PoSetSystemWake pour marquer une IRP_MN_WAIT_WAKE IRP comme contribuant à réveiller le système d’un état de veille. Par défaut, les IRP d’attente/veille sont considérés comme des IRP de mise en éveil de l’appareil. Il incombe à l’appareil terminal dans une chaîne d’attente/veille de déterminer s’il a réveillé le système et d’appeler PoSetSystemWake pour l’IRP d’attente/veille du terminal. Lorsqu’un pilote appelle PoSetSystemWake sur un IRP, il est marqué comme ayant contribué à réveiller le système d’un état de veille. Un seul pilote d’une pile doit appeler cette routine, et il doit normalement s’agir du pilote de bus dans une pile de pilotes.

Tous les autres pilotes d’une chaîne d’attente/de veille peuvent appeler PoGetSystemWake pour leurs propres IRP d’attente/éveil à la fin pour déterminer s’ils doivent appeler PoSetSystemWake sur n’importe quel irp d’attente/éveil enfant qu’ils sont sur le point de terminer. Cela garantit que les informations de veille système progressent correctement tout au long de la chaîne d’attente/veille.

Une fois l’IRP d’attente/veille terminée, le gestionnaire d’alimentation vérifie si l’IRP est marqué comme un IRP de veille système. Si l’IRP est marqué comme un IRP de veille du système, le gestionnaire d’alimentation ajoute l’IRP à une liste interne des appareils qui ont réveillé le système. Toutefois, le gestionnaire d’alimentation effectue uniquement le suivi des appareils les plus spécifiques qui fonctionnent sur le système. Par exemple, si l’appareil A est ajouté en tant qu’appareil qui a réveillé le système, puis que l’appareil B( enfant de l’appareil A) est également ajouté, le gestionnaire d’alimentation conserve uniquement l’appareil B dans la liste, car l’appareil B est le plus spécifique. Si le gestionnaire d’alimentation ne peut pas déterminer l’appareil le plus spécifique qui a réveillé le système, le gestionnaire d’alimentation peut effectuer le suivi de plusieurs appareils qui ont signalé qu’il a réveillé le système.

Power Manager consigne un événement de suivi d’événements pour Windows (ETW) (visible dans le canal système global) qui inclut des informations sur les appareils qui ont réveillé le système.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
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

Voir aussi

PoGetSystemWake