Fonction PoSetPowerState (ntifs.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
PoSetPowerState retourne l’état d’alimentation précédent.
Remarques
PoSetPowerState avertit le gestionnaire d’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 de périphérique correspondant. Par exemple :
Un pilote appelle cette routine après avoir reçu une demande de définition d’alimentation de l’appareil et avant d’appeler PoStartNextPowerIrp. Lors de la gestion d’une demande de IRP_MN_START_DEVICE PnP, le pilote doit appeler PoSetPowerState pour informer le gestionnaire d’alimentation que l’appareil est dans 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 du client avant que PoSetPowerState ne retourne.
Si l’appareil est mis sous tension, le pilote doit appeler PoSetPowerState une fois que l’appareil a été correctement placé dans l’état D0.
Pour plus d’informations sur la mise sous tension d’un appareil, consultez Gestion des IRP_MN_SET_POWER pour les états d’alimentation de l’appareil.
Les appelants de PoSetPowerState doivent s’exécuter sur IRQL <= APC_LEVEL sauf quand l’état est défini sur D0. Lorsque vous définissez l’état sur D0, les appelants peuvent être en cours d’exécution sur IRQL <= DISPATCH_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 |
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Consultez la section Notes. |