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.

Voir aussi

IRP_MN_START_DEVICE

PoStartNextPowerIrp