Fonction PoSetPowerState (wdm.h)
La routine PoSetPowerState avertit le système d’une modification de l’état d’alimentation d’un appareil.
Syntaxe
POWER_STATE PoSetPowerState(
[in] PDEVICE_OBJECT DeviceObject,
[in] POWER_STATE_TYPE Type,
[in] POWER_STATE State
);
Paramètres
[in] DeviceObject
Pointeur vers le DEVICE_OBJECT cible.
[in] Type
Indique une valeur POWER_STATE_TYPE . Les pilotes doivent spécifier DevicePowerState.
[in] State
Spécifie l’état d’alimentation à définir. Les pilotes doivent spécifier une valeur DEVICE_POWER_STATE .
Valeur retournée
Sur Windows 2000 et versions ultérieures du système d’exploitation, PoSetPowerState retourne l’état d’alimentation précédent. Sur Windows 98/Me, PoSetPowerState retourne l’état passé dans État.
Remarques
PoSetPowerState avertit le gestionnaire de l’alimentation du nouvel état d’alimentation d’un appareil. Chaque pilote d’une pile de périphériques (pilotes de filtre, de fonction et de bus) doit appeler PoSetPowerState pour informer le gestionnaire d’alimentation d’une modification de l’état d’alimentation de son objet d’appareil correspondant. Par exemple :
- Un pilote appelle cette routine après avoir reçu une demande d’alimentation de l’appareil et avant d’appeler PoStartNextPowerIrp. Lors de la gestion d’une demande pnP IRP_MN_START_DEVICE , le pilote doit appeler PoSetPowerState pour informer le gestionnaire d’alimentation que l’appareil est à l’état D0.
- Si l’appareil est hors tension, le pilote doit appeler PoSetPowerState avant de quitter l’état D0. En outre, le pilote doit être en mesure de traiter les demandes des clients avant le retour de PoSetPowerState .
- Si l’appareil est mis sous tension, le pilote doit appeler PoSetPowerState une fois que l’appareil est correctement placé dans l’état D0.
Les appelants de PoSetPowerState doivent s’exécuter sur IRQL <= APC_LEVEL sauf lorsque l’état est défini sur D0. Lorsque vous définissez l’état sur D0, les appelants peuvent être en cours d’exécution dans IRQL <= DISPATCH_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Consultez la section Notes. |