Partager via


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

Les pilotes peuvent diviser le hardware de leur appareil en plusieurs composants logiques pour permettre la gestion de l’alimentation affinée. Un composant présente un ensemble d’états d’alimentation qui peuvent être gérés indépendamment des états d’alimentation d’autres composants dans le même appareil. Dans l’état F0, le composant est totalement activé. Le composant peut prendre en charge des états F1, F2, etc. supplémentaires à faible consommation d’énergie.

Le propriétaire de la stratégie d’alimentation d’un appareil est généralement le pilote de fonction de ce dernier. Pour activer la gestion de l’alimentation au niveau du composant, 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 utilisé activement et quand il est inactif. PoFx fait des choix d’état d’inactivité intelligents pour l’appareil en fonction des informations sur l’activité des composants, la tolérance en termes de latence, les durées d’inactivité attendues et les exigences de sortie de veille. En contrôlant l’utilisation de l’énergie au niveau des composants, PoFx peut réduire les besoins en énergie tout en préservant la réactivité du système. Pour en savoir plus, consultez Gestion de l’alimentation au niveau du composant.

Routines de gestion de l’alimentation de l’appareil

Ces routines sont implémentées par l’infrastructure de gestion de l’alimentation (PoFx) pour activer la gestion de l’alimentation de l’appareil. 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.

Sujet 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 pour placer un composant d’appareil dans un état de performance 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é comme effet secondaire de l’alimentation d’un autre appareil.
PoFxPowerControl La routine PoFxPowerControl envoie une demande de contrôle d’alimentation à l’infrastructure de gestion de l’alimentation (PoFx).
PoFxQueryCurrentComponentPerfState La routine PoFxQueryCurrentComponentPerfState récupère l’état de performance actif dans le jeu d’états de performances d’un composant.
PoFxRegisterComponentPerfStates La routine PoFxRegisterComponentPerfStates inscrit un composant d’appareil pour la gestion des états de performances par l’infrastructure de gestion de l’alimentation (PoFx).
PoFxRegisterDevice La routine PoFxRegisterDevice inscrit un appareil auprès de l’infrastructure 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 (totalement activé).
PoFxSetComponentLatency La routine PoFxSetComponentLatency spécifie la latence maximale qui peut être tolérée dans 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 son entrée dans un état d’inactivité.
PoFxSetComponentWake La routine PoFxSetComponentWake indique si le pilote arme le composant spécifié pour sortir de veille chaque fois qu’il entre dans la condition d’inactivité.
PoFxSetDeviceIdleTimeout La routine PoFxSetDeviceIdleTimeout spécifie l’intervalle minimal à partir duquel le dernier composant de l’appareil entre dans la condition d’inactivité lorsque 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 auprès de 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 de l’appareil

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

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

Structures de gestion de l’alimentation de l’appareil

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

Sujet Description
PO_FX_COMPONENT_V1 PO_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 composant unique 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_V1 PO_FX_DEVICE_V2 PO_FX_DEVICE_V3 La structure PO_FX_DEVICE décrit les attributs d’alimentation d’un appareil pour 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 composant unique au sein d’un appareil.
PO_FX_PERF_STATE_CHANGE La structure PO_FX_PERF_STATE_CHANGE contient des informations sur un changement d’état de performance demandé en appelant la routine PoFxIssueComponentPerfStateChange ou PoFxIssueComponentPerfStateChangeMultiple.

Énumérations de la gestion de l’alimentation de l’appareil

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

Sujet 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 de l’appareil

Bits d’indicateur PO_FX_FLAG_XXX

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 Modifiez la condition de façon synchrone. Si cet indicateur est défini, la routine qui demande la modification de la condition ne renvoie 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 à l’IRQL < DISPATCH_LEVEL.
PO_FX_FLAG_ASYNC_ONLY Modifiez complètement la condition de façon asynchrone. Si cet indicateur est défini, la routine de rappel du pilote appelant est appelée à partir d’un thread autre que celui dans lequel la routine qui demande la modification de la condition est appelée. Ainsi, cette dernière renvoie toujours de façon asynchrone sans attendre que le rappel se termine.

Remarques PO_FX_FLAG_XXX

Le paramètre Indicateurs 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 Indicateurs, mais pas les deux.

Exigences pour PO_FX_FLAG_XXX

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

Bits d’indicateur PO_FX_FLAG_PERF_XXX

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 du composant d’un 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 que le pilote 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 désactive le composant. Les pilotes définissent cet indicateur si le composant contient des états de performances nominaux, auquel 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 fait passer le composant d’un état d’inactivité à un autre. Les pilotes définissent cet indicateur si ce composant contient des états de performances nominaux, auquel cas PoFx interroge le PEP pour déterminer l’état actuel des performances lorsque le composant passe d’un état d’inactivité à un autre.

Remarques PO_FX_FLAG_PERF_XXX

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

Exigences pour PO_FX_FLAG_PERF_XXX

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