Gestion de la stratégie d’alimentation des appareils

Tout comme le gestionnaire d’alimentation gère et administre la stratégie d’alimentation pour le système, un pilote dans la pile de périphériques pour chaque appareil gère et administre la stratégie d’alimentation de l’appareil. Ce pilote est le propriétaire de la stratégie d’alimentation de l’appareil.

Le propriétaire de la stratégie d’alimentation de l’appareil est le pilote qui contient le plus d’informations sur l’utilisation et l’état d’alimentation des appareils. Il n’a pas besoin de pouvoir physiquement définir les registres de l’appareil pour l’allumer et le désactiver, mais il doit être en mesure de déterminer quand l’appareil est en cours d’utilisation, quand il est inactif et quand il doit changer d’état d’alimentation.

En règle générale, le pilote de fonction d’un appareil est son propriétaire de la stratégie d’alimentation, bien que pour certains appareils, un autre pilote ou composant système puisse assumer ce rôle. Pour plus d’informations sur les types de pilotes impliqués dans la gestion de l’alimentation, consultez Types de pilotes WDM.

Certains pilotes agissent en tant que pilote de fonction pour un appareil (création d’un FDO) et pilote de bus (création d’un PDO) pour un appareil enfant énuméré. Dans ses routines dispatch pour l’alimentation et les IRP PnP, un tel pilote doit distinguer sa gestion des IRP envoyées au FDO et celles envoyées à l’AOP.

Par exemple, le pilote d’une carte SCSI peut remplir les rôles de pilote de fonction (création d’un FDO) pour l’adaptateur lui-même et de pilote de bus (création d’un PDO) pour les disques attachés à l’adaptateur. Dans sa capacité en tant que pilote de fonction/propriétaire de stratégie pour l’adaptateur SCSI, ce pilote reçoit les IRP système et demande des IRPs de périphérique pour l’adaptateur SCSI. Dans sa capacité de pilote de bus pour les disques, il gère et termine les IRP de périphérique qui spécifient les PPO de disque qu’il crée. Le fait que le pilote possède la stratégie d’alimentation d’un appareil (FDO) ne signifie pas qu’il possède la stratégie d’alimentation pour l’appareil enfant (PDO).

Le propriétaire de la stratégie d’alimentation de l’appareil est responsable des éléments suivants :

  • Définissez l’état d’alimentation initial de l’appareil sur D0 en appelant PoSetPowerState, car il gère la demande de IRP_MN_START_DEVICE du gestionnaire de Plug-and-Play.

    Les appareils doivent s’allumer en fonction des besoins ; par exemple, un appareil doit s’allumer pour gérer une demande d’E/S. Le propriétaire de la stratégie d’alimentation de l’appareil est chargé de déterminer quand son appareil est nécessaire, de s’assurer que l’appareil est sous tension et de définir l’état d’alimentation correct de l’appareil. L’appareil standard doit être mis sous tension au moment où l’IRP de démarrage de l’appareil PnP est terminé.

    En règle générale, la plupart des appareils doivent être mis hors tension lorsqu’ils ne sont pas utilisés, même lorsque le système est en état de fonctionnement.

  • Envoi d’une demande d’alimentation d’appareil en réponse à une demande d’alimentation du système en appelant PoRequestPowerIrp.

    Par exemple, lorsque le propriétaire de la stratégie reçoit un IRP défini sur l’alimentation du système, il envoie un IRP défini sur l’alimentation de l’appareil. La plupart des appareils entrent dans D3 lorsque le système entre dans un état de veille. Le tableau DeviceState de la structure DEVICE_CAPABILITIES répertorie l’état le plus puissant que l’appareil peut maintenir pour chaque état d’alimentation du système. (Consultez Création de rapports sur les fonctionnalités d’alimentation des appareils.)

  • Détecter quand l’appareil est inactif et le mettre en veille pour économiser l’énergie.

    Le gestionnaire d’alimentation ou le propriétaire de la stratégie d’appareil peut détecter un appareil inactif et envoyer un IRP d’alimentation de l’appareil pour modifier son état. Pour plus d’informations, consultez Détection d’un appareil inactif.

  • Retour de son appareil à l’état de fonctionnement si nécessaire.

    Lorsqu’une demande d’E/S arrive pour un appareil en veille, les pilotes de l’appareil doivent le retourner à l’état opérationnel.

  • Activation et désactivation de la mise en éveil pour son appareil lorsque cela est demandé.

    Le propriétaire de la stratégie d’alimentation de l’appareil envoie et annule les irps d’attente/éveil, comme décrit dans Prise en charge des appareils dotés de fonctionnalités Wake-Up.