Fonction PoSetPowerState (ntifs.h)
La routine PoSetPowerState avertit le système d’une modification de l’état d’alimentation de l’appareil pour 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_OBJECTcible .
[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 de retour
PoSetPowerState retourne l’état d’alimentation précédent.
Remarques
PoSetPowerState avertit le du nouvel état d’alimentation d’un appareil. Chaque pilote d’une pile d’appareils (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 de IRP_MN_START_DEVICE PnP, le pilote doit appeler PoSetPowerState pour avertir le gestionnaire d’alimentation que l’appareil est dans l’état D0.
Si l’appareil est en panne, 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 PoSetPowerState retourne.
Si l’appareil est en cours d’alimentation, le pilote doit appeler PoSetPowerState une fois que l’appareil est correctement placé dans l’état D0.
Pour plus d’informations sur l’alimentation d’un appareil vers le haut et le bas, consultez Gestion des IRP_MN_SET_POWER pour device Power States.
Les appelants de poSetPowerState doivent être en cours d’exécution au <IRQL = APC_LEVEL sauf lors de la définition de l’état sur D0. Lors de la définition de l’état sur D0, les appelants peuvent s’exécuter à l'<IRQL = DISPATCH_LEVEL.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Voir la section Remarques. |