Fonction PoFxNotifySurprisePowerOn (wdm.h)

La routine PoFxNotifySurprisePowerOn informe l’infrastructure de gestion de l’alimentation (PoFx) qu’un appareil a été allumé comme effet secondaire de l’alimentation d’un autre appareil.

Syntaxe

void PoFxNotifySurprisePowerOn(
  [in] PDEVICE_OBJECT Pdo
);

Paramètres

[in] Pdo

Pointeur vers un objet d’appareil physique (PDO). Ce paramètre pointe vers une structure DEVICE_OBJECT qui représente l’appareil physique qui a été activé en tant qu’effet secondaire. L’appelant est toujours le pilote de bus qui a énuméré l’AOP.

Valeur de retour

None

Remarques

Les pilotes de périphérique ne doivent pas appeler cette routine. Cette routine doit être appelée uniquement par les conducteurs de bus.

Un pilote de bus appelle cette routine pour informer PoFx qu’un appareil qui n’est pas actuellement utilisé a été accidentellement activé en même temps qu’un deuxième appareil. Par exemple, le premier appareil peut partager un rail d’alimentation avec le second. Par conséquent, l’alimentation ne peut pas être fournie au deuxième appareil sans fournir de l’alimentation, comme effet secondaire, au premier appareil. Étant donné que le premier appareil n’est pas utilisé, il doit être configuré pour consommer le moins d’énergie possible.

Pour demander une transition vers un état d’alimentation D0, un pilote de périphérique envoie une IRP_MN_SET_POWER demande dans sa pile de périphériques. Par le biais de l’AOP dans cette pile, le pilote de bus qui est le parent de cet appareil reçoit la demande et répond en fournissant l’alimentation à l’appareil. Toutefois, si le pilote de bus ne peut pas activer cet appareil sans activer également un deuxième appareil inutilisé, le pilote de bus peut appeler PoFxNotifySurprisePowerOn pour réduire la consommation d’énergie par l’appareil inutilisé.

Lors de l’entrée dans PoFxNotifySurprisePowerOn, l’appareil représenté par le paramètre Pdo est dans un état d’alimentation D0 non initialisé. Dans cet état, tous les composants de l’appareil sont généralement activés. En réponse à l’appel PoFxNotifySurprisePowerOn , PoFx configure l’appareil dans un état D0 initialisé. Au cours de cette configuration, PoFx bascule autant de composants que possible vers des états d’alimentation Fx à faible consommation. Si possible, PoFx configure l’appareil dans un état « D3 chaud », qui est en fait un état D0 dans lequel tous les composants individuels de l’appareil sont désactivés.

PoFxNotifySurprisePowerOn peut configurer uniquement un appareil qui a été inscrit auprès de PoFx lorsque l’appareil a été précédemment désactivé. Toutefois, à moins que le pilote de bus sache qu’un appareil n’est pas inscrit, le pilote de bus doit appeler PoFxNotifySurprisePowerOn lorsque l’appareil est allumé comme effet secondaire.

Si le pilote de bus ne parvient pas à appeler cette routine lorsque l’appareil est allumé, le matériel de l’appareil peut rester à l’état entièrement actif pendant une durée indéterminée, pendant laquelle PoFx suppose que l’appareil reste dans l’état d’alimentation D3 (complètement éteint).

Appelez PoFxNotifySurprisePowerOn uniquement si l’appareil a été allumé incidemment, comme effet secondaire de l’activation d’un autre appareil. Si le pilote de bus restaure l’alimentation d’un appareil en réponse à un rappel DevicePowerRequiredCallback ou à une demande IRP_MN_SET_POWER pour une transition D0, appelez la routine PoFxReportDevicePoweredOn à la place pour informer PoFx lorsque l’alimentation est restaurée sur l’appareil.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête wdm.h
Bibliothèque Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Voir aussi

DEVICE_OBJECT

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PoFxReportDevicePoweredOn