Informations de référence sur la gestion de l’alimentation des appareils

Les pilotes peuvent diviser leur matériel d’appareil en plusieurs composants logiques pour permettre une gestion de l’alimentation affinée. Un composant a un ensemble d’états d’alimentation qui peuvent être gérés indépendamment des états d’alimentation des autres composants du même appareil. À l’état F0, le composant est entièrement activé. Le composant peut prendre en charge des états supplémentaires de faible puissance F1, F2, etc.

Le propriétaire de la stratégie d’alimentation d’un appareil est généralement le pilote de fonction de l’appareil. Pour activer la gestion de l’alimentation au niveau des composants, ce pilote inscrit l’appareil auprès de l’infrastructure de gestion de l’alimentation (PoFx). En inscrivant l’appareil, le pilote assume la responsabilité d’informer PoFx lorsqu’un composant est activement utilisé et quand le composant est inactif. PoFx fait des choix d’état d’inactivité intelligents pour l’appareil en fonction des informations sur l’activité du composant, la tolérance de latence, les durées d’inactivité attendues et les exigences de veille. En contrôlant la consommation d’énergie au niveau des composants, PoFx peut réduire les besoins en alimentation tout en préservant la réactivité du système. Pour plus d’informations, consultez Gestion de l’alimentation au niveau des composants.

Routines de gestion de l’alimentation des appareils

Ces routines sont implémentées par l’infrastructure de gestion de l’alimentation (PoFx) pour activer la gestion de l’alimentation des appareils. Ces routines sont appelées par le pilote qui est le propriétaire de la stratégie d’alimentation (PPO) d’un appareil. En règle générale, le pilote de fonction d’un appareil est le PPO de cet appareil.

Rubrique Description
PoFxActivateComponent La routine PoFxActivateComponent incrémente le nombre de références d’activation sur le composant spécifié.
PoFxCompleteDevicePowerNotRequired La routine PoFxCompleteDevicePowerNotRequired informe l’infrastructure de gestion de l’alimentation (PoFx) que le pilote appelant a terminé sa réponse à un appel à la routine de rappel DevicePowerNotRequiredCallback du pilote.
PoFxCompleteIdleCondition La routine PoFxCompleteIdleCondition informe l’infrastructure de gestion de l’alimentation (PoFx) que le composant spécifié a terminé une modification en attente de la condition inactive.
PoFxCompleteIdleState La routine PoFxCompleteIdleState informe l’infrastructure de gestion de l’alimentation (PoFx) que le composant spécifié a terminé une modification en attente d’un état Fx.
PoFxIdleComponent La routine PoFxIdleComponent décrémente le nombre de références d’activation sur le composant spécifié.
PoFxIssueComponentPerfStateChange La routine PoFxIssueComponentPerfStateChange envoie une demande de placer un composant d’appareil dans un état de performances particulier.
PoFxIssueComponentPerfStateChangeMultiple La routine PoFxIssueComponentPerfStateChangeMultiple envoie une demande de modification des états de performances dans plusieurs jeux d’états de performances simultanément pour un composant d’appareil.
PoFxNotifySurprisePowerOn La routine PoFxNotifySurprisePowerOn informe l’infrastructure de gestion de l’alimentation (PoFx) qu’un appareil a été activé en tant qu’effet secondaire de la fourniture d’alimentation à un autre appareil.
PoFxPowerControl La routine PoFxPowerControl envoie une demande de contrôle d’alimentation au framework de gestion de l’alimentation (PoFx).
PoFxQueryCurrentComponentPerfState La routine PoFxQueryCurrentComponentPerfState récupère l’état des performances actives dans l’ensemble d’états de performances d’un composant.
PoFxRegisterComponentPerfStates La routine PoFxRegisterComponentPerfStates inscrit un composant d’appareil pour la gestion de l’état des performances par l’infrastructure de gestion de l’alimentation (PoFx).
PoFxRegisterDevice La routine PoFxRegisterDevice inscrit un appareil auprès du framework de gestion de l’alimentation (PoFx).
PoFxReportDevicePoweredOn La routine PoFxReportDevicePoweredOn informe l’infrastructure de gestion de l’alimentation (PoFx) que l’appareil a terminé la transition demandée vers l’état d’alimentation D0 (entièrement activé).
PoFxSetComponentLatency La routine PoFxSetComponentLatency spécifie la latence maximale qui peut être tolérée lors de la transition de la condition inactive à la condition active dans le composant spécifié.
PoFxSetComponentResidency La routine PoFxSetComponentResidency définit la durée estimée pendant laquelle un composant est susceptible de rester inactif après l’entrée du composant dans la condition d’inactivité.
PoFxSetComponentWake La routine PoFxSetComponentWake indique si le pilote force le composant spécifié à se réveiller chaque fois que le composant entre dans l’état d’inactivité.
PoFxSetDeviceIdleTimeout La routine PoFxSetDeviceIdleTimeout spécifie l’intervalle de temps minimal entre le moment où le dernier composant de l’appareil entre dans la condition d’inactivité et le moment où l’infrastructure de gestion de l’alimentation (PoFx) appelle la routine de rappel DevicePowerNotRequiredCallback du pilote.
PoFxStartDevicePowerManagement La routine PoFxStartDevicePowerManagement termine l’inscription d’un appareil avec l’infrastructure de gestion de l’alimentation (PoFx) et démarre la gestion de l’alimentation des appareils.
PoFxUnregisterDevice La routine PoFxUnregisterDevice supprime l’inscription d’un appareil de l’infrastructure de gestion de l’alimentation (PoFx).

Rappels de gestion de l’alimentation des appareils

Ces routines de rappel sont requises par l’infrastructure de gestion de l’alimentation (PoFx) pour activer la gestion de l’alimentation des appareils. Le pilote qui est le propriétaire de la stratégie d’alimentation de l’appareil implémente ces routines de rappel. PoFx appelle ces routines pour interroger et configurer les états d’alimentation des composants de l’appareil.

Rubrique Description
ComponentActiveConditionCallback La routine de rappel ComponentActiveConditionCallback avertit le pilote que le composant spécifié a effectué une transition de la condition inactive à la condition active.
ComponentIdleConditionCallback La routine de rappel ComponentIdleConditionCallback avertit le pilote que le composant spécifié a effectué une transition de la condition active à la condition inactive.
ComponentIdleStateCallback La routine de rappel ComponentIdleStateCallback avertit le pilote d’une modification en attente de l’état d’alimentation Fx du composant spécifié.
ComponentPerfStateCallback La routine de rappel ComponentPerfStateCallback avertit le pilote que sa demande de modification de l’état des performances d’un composant est terminée.
DevicePowerNotRequiredCallback La routine de rappel DevicePowerNotRequiredCallback avertit le pilote de périphérique que l’appareil n’est pas obligé de rester dans l’état d’alimentation D0.
DevicePowerRequiredCallback La routine de rappel DevicePowerRequiredCallback avertit le pilote de périphérique que l’appareil doit entrer et rester dans l’état d’alimentation D0.
PowerControlCallback La routine de rappel PowerControlCallback effectue une opération de contrôle d’alimentation demandée par l’infrastructure de gestion de l’alimentation (PoFx).

Structures de gestion de l’alimentation des appareils

L’infrastructure de gestion de l’alimentation (PoFx) définit ces structures pour prendre en charge la gestion de l’alimentation des appareils.

Rubrique Description
PO_FX_COMPONENT_V1PO_FX_COMPONENT_V2 La structure PO_FX_COMPONENT décrit les attributs d’état d’alimentation d’un composant dans un appareil.
PO_FX_COMPONENT_IDLE_STATE La structure PO_FX_COMPONENT_IDLE_STATE spécifie les attributs d’un état d’alimentation Fx d’un composant dans un appareil.
PO_FX_COMPONENT_PERF_INFO La structure PO_FX_COMPONENT_PERF_INFO décrit tous les ensembles d’états de performances d’un seul composant au sein d’un appareil.
PO_FX_COMPONENT_PERF_SET La structure PO_FX_COMPONENT_PERF_SET représente un ensemble d’états de performances pour un composant unique au sein d’un appareil.
PO_FX_DEVICE_V1PO_FX_DEVICE_V2PO_FX_DEVICE_V3 La structure PO_FX_DEVICE décrit les attributs d’alimentation d’un appareil à l’infrastructure de gestion de l’alimentation (PoFx).
PO_FX_PERF_STATE La structure PO_FX_PERF_STATE représente un état de performances pour un seul composant au sein d’un appareil.
PO_FX_PERF_STATE_CHANGE La structure PO_FX_PERF_STATE_CHANGE contient des informations sur une modification de l’état des performances demandée en appelant la routine PoFxIssueComponentPerfStateChange ou PoFxIssueComponentPerfStateChangeMultiple .

Énumérations de gestion de l’alimentation des appareils

L’infrastructure de gestion de l’alimentation (PoFx) définit ces énumérations pour prendre en charge la gestion de l’alimentation des appareils.

Rubrique Description
PO_FX_PERF_STATE_TYPE L’énumération PO_FX_PERF_STATE_TYPE contient des valeurs qui décrivent le type d’états de performances dans un PO_FX_COMPONENT_PERF_SET.
PO_FX_PERF_STATE_UNIT L’énumération PO_FX_PERF_STATE_UNIT contient des valeurs qui décrivent le type d’unité contrôlé par les états de performances dans un PO_FX_COMPONENT_PERF_SET.

Constantes de gestion de l’alimentation des appareils

PO_FX_FLAG_XXX bits d’indicateur

Les constantes PO_FX_FLAG_XXX sont des bits d’indicateur qui indiquent si une demande de modification de la condition du composant est effectuée de manière synchrone ou asynchrone.

#define PO_FX_FLAG_BLOCKING   0x1
#define PO_FX_FLAG_ASYNC_ONLY 0x2

constantes PO_FX_FLAG_XXX

Constant Description
PO_FX_FLAG_BLOCKING Rendez la modification de condition synchrone. Si cet indicateur est défini, la routine qui demande la modification de condition ne retourne pas le contrôle au pilote appelant tant que le matériel du composant n’a pas terminé la transition vers la nouvelle condition. Cet indicateur ne peut être utilisé que si l’appelant s’exécute sur irQL < DISPATCH_LEVEL.
PO_FX_FLAG_ASYNC_ONLY Rendez la modification de condition entièrement asynchrone. Si cet indicateur est défini, la routine de rappel du pilote appelant est appelée à partir d’un thread autre que le thread dans lequel la routine qui demande la modification de condition est appelée. Ainsi, la routine qui demande la modification de condition retourne toujours de façon asynchrone sans attendre la fin du rappel.

PO_FX_FLAG_XXX remarques

Le paramètre Flags des routines suivantes peut être défini sur une constante PO_FX_FLAG_XXX :

Les bits d’indicateur PO_FX_FLAG_BLOCKING et PO_FX_FLAG_ASYNC_ONLY s’excluent mutuellement. L’appelant peut définir l’un ou l’autre bit d’indicateur dans le paramètre Flags, mais pas les deux bits d’indicateur.

PO_FX_FLAG_XXX Conditions requises

Version En-tête
Pris en charge à partir de Windows 8. Wdm.h

PO_FX_FLAG_PERF_XXX bits d’indicateur

Les constantes PO_FX_FLAG_PERF_XXX sont des bits d’indicateur qui définissent la façon dont l’infrastructure de gestion de l’alimentation (PoFx) gère les états de performances d’un composant d’appareil.

#define PO_FX_FLAG_PERF_PEP_OPTIONAL   0x1
#define PO_FX_FLAG_PERF_QUERY_ON_F0 0x2
#define PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 0x4
Constant Valeur Description
PO_FX_FLAG_PERF_PEP_OPTIONAL 1 (0x1) Indique que le pilote peut modifier les états de performances sans l’aide du plug-in d’extension de plateforme (PEP) ou qu’il inscrit des états de performances auprès de PoFx à des fins de journalisation uniquement. Si cet indicateur est défini, l’appel PoFxRegisterComponentPerfStates réussit toujours si le pep ne prend pas en charge les états de performances du composant.
PO_FX_FLAG_PERF_QUERY_ON_F0 2 (0x2) Pour certains appareils, le pep peut avoir besoin de placer un état de performances défini pour un composant dans un état de performances spécifique (appelé état de performances nominal) lorsqu’il inactif le composant. Les pilotes définissent cet indicateur si le composant contient des états de performances nominales. Dans ce cas, PoFx interroge le PEP pour déterminer l’état actuel des performances lorsque le composant passe à F0.
PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES 4 (0x4) Pour certains appareils, le pep peut avoir besoin de placer un état de performances défini pour un composant dans un état de performances spécifique (appelé état de performances nominal) lorsqu’il effectue la transition du composant entre des états inactifs. Les pilotes définissent cet indicateur si ce composant contient des états de performances nominales. Dans ce cas, PoFx interroge le PEP pour déterminer l’état de performances actuel lorsque le composant passe d’un état inactif à l’autre.

PO_FX_FLAG_PERF_XXX remarques

Le paramètre Flags de la routine PoFxRegisterComponentPerfStates peut être défini sur une constante PO_FX_FLAG_PERF_XXX .

PO_FX_FLAG_PERF_XXX conditions requises

Spécifications Version
Pris en charge à partir de Windows 10. Wdm.h