Partager via


Prise en charge des états d’alimentation fonctionnels

À partir de Windows 8, le gestionnaire d’alimentation inclut l’infrastructure de gestion de l’alimentation au moment de l’exécution (PoFx). PoFx prend en charge la gestion de l’alimentation et de l’horloge au niveau du composant (ou du sous-appareil).

À compter de KMDF version 1.11, les pilotes KMDF peuvent tirer parti du contrôle d’alimentation affiné offert par PoFx. En particulier, un pilote KMDF peut définir plusieurs composants logiques au sein d’un même appareil, chacun pouvant être géré indépendamment de l’alimentation.

Par exemple, un pilote de fonction peut définir un ensemble unique d’états d’alimentation fonctionnelle pour chaque composant logique d’un appareil. À l’instar des états d’alimentation de l’appareil et du système, F0 indique que le composant est entièrement activé, tandis que les états facultatifs F1, F2, etc. indiquent des états d’alimentation progressivement inférieurs. Pour prendre en charge les états Fx, un pilote doit être le propriétaire de la stratégie d’alimentation de l’appareil.

Le tableau suivant récapitule la prise en charge du framework pour différents scénarios d’état d’alimentation fonctionnel.

Type Prise en charge de KMDF Prise en charge d’UMDF Quand utiliser/comment implémenter

Composant unique, état unique (F0)

Prise en charge

Prise en charge

Lorsque vous souhaitez que le plug-in du moteur d’alimentation (PEP) détermine la valeur du délai d’inactivité, et que votre pilote n’a qu’un seul état F.

Appelez WdfDeviceAssignS0IdleSettings avec IdleTimeoutType = SystemManagedIdleTimout ou SystemManagedIdleTimoutWithHint.

Composant unique, états multiples (F0, F1, F2...)

Prise en charge

Non prise en charge

Lorsque votre pilote a plusieurs états F.

Dans ce cas, KMDF gère la plupart des interactions avec poFx.

Pour obtenir un exemple de code, consultez Exemples de pilotes PoFx.

Composants multiples, états uniques ou multiples

Pris en charge à l’aide d’interfaces WDM

Non prise en charge

Lorsque votre pilote a plusieurs composants. Dans ce cas, vous devez utiliser directement les interfaces PoFx.

Pour obtenir un exemple de code, consultez Exemples de pilotes PoFx.

Étant donné que KMDF ajoute une abstraction minimale à PoFx, il est utile d’avoir une compréhension de base de PoFx avant d’écrire votre pilote. Par conséquent, nous vous recommandons de lire La vue d’ensemble de l’infrastructure de gestion de l’alimentation avant de lire ces rubriques.