Partager via


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.
Pour plus d’informations sur l’alimentation d’un appareil, consultez Gestion des IRP_MN_SET_POWER pour les états d’alimentation des appareils.

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.

Voir aussi

IRP_MN_START_DEVICE

PoStartNextPowerIrp