Partager via


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.

Voir aussi

IRP_MN_START_DEVICE

PoStartNextPowerIrp