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 :
- PoFxActivateComponent
- PoFxIdleComponent
- PoFxIssueComponentPerfStateChange
- PoFxIssueComponentPerfStateChangeMultiple
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 |