États d'alimentation des appareils USB
Cet article décrit les états d'appareil du modèle de pilote Windows (WDM) à utiliser pour les états d'alimentation des appareils USB, conformément à la section 9.1 de la spécification Universal Serial Bus 2.0.
Les états de puissance des périphériques USB (tels que spécifiés dans la section 9.1 de la spécification Universal Serial Bus 2.0) peuvent être regroupés en trois catégories générales :
- Attached : Le périphérique est branché, mais pas complètement alimenté.
- Powered : Le périphérique est dans l’un des états pleinement alimentés : Default, Address, ou Configured.
- Suspended : Le périphérique est en état de veille et fonctionne en basse puissance.
Il n'y a pas de corrélation directe entre les états d'alimentation des appareils définis dans le modèle d'alimentation WDM et les états d'alimentation des appareils définis dans la norme USB. Par exemple, les termes suspendu et inactif ont une signification spécifique dans la spécification USB; cependant, ces termes sont souvent utilisés différemment dans le modèle de puissance WDM. Les pilotes clients Windows peuvent mettre un périphérique USB en état Suspendu. Pour plus d'informations, voir Suspension sélective USB. Lorsqu’un pilote client est prêt à suspendre son périphérique, il demande au pilote de bus de le mettre en veille. Pour une discussion sur les requêtes en attente, voir Suspension sélective de l'USB.
Les états de puissance des périphériques dans le modèle WDM peuvent être résumés comme suit :
- D0 : L’état de fonctionnement. Le périphérique est complètement alimenté.
- D1/D2 : Les états de veille intermédiaires. Ces états permettent au périphérique d’être armé pour le réveil à distance.
- D3 : L’état de veille le plus profond. Les appareils dans l'état D3 ne peuvent pas être armés pour un réveil à distance.
Pour une discussion complète sur les états de puissance des appareils dans le modèle de puissance WDM, voir États de puissance des appareils.
Le modèle de puissance WDM utilise le terme arming (armer) des périphériques pour le réveil à distance. L’armement est une opération logicielle qui, normalement mais pas nécessairement, conduit à l’opération matérielle enabling (activation) la fonction de réveil à distance sur un périphérique USB. L’opération logicielle WDM qui arme un périphérique pour le réveil à distance est l’IRP de veille (IRP_MN_WAIT_WAKE). Pour plus d'informations sur cette IRP, reportez-vous à la section Prise en charge des appareils dotés de capacités de réveil.
Pour plus d’informations sur cet IRP, consultez Réveil à distance des périphériques USB.
Cette section comporte les sous-sections suivantes :
- Changement de l'état d'alimentation d'un appareil non composite
- Changement de l'état d'alimentation d'un appareil composite
- Rubriques connexes
Modification de l'état d'alimentation d'un appareil non composite
Le gestionnaire de politique d’alimentation pour un périphérique USB est responsable de définir l’état de puissance du périphérique. Le gestionnaire de politique d’alimentation définit l’état de puissance en émettant un IRP de puissance WDM (IRP_MN_SET_POWER). Pour plus d’informations sur le gestionnaire de stratégies d’alimentation, consultez la section Propriété de la politique d’alimentation.
Les actions entreprises par le pilote de bus dépendent du niveau de puissance du périphérique que le gestionnaire de politique d’alimentation demande. La liste suivante détaille les actions que le pilote de bus entreprend pour chaque niveau de demande de mise sous tension :
D0
Le pilote de bus effectue les tâches suivantes :
- S’assure que tous les concentrateurs USB en amont sont alimentés et prêts à recevoir des demandes.
- Reprend le port en effaçant la fonctionnalité PORT_SUSPEND, si le port USB du périphérique est suspendu.
- Complète l’IRP de veille du périphérique avec STATUS_SUCCESS, si l’un est en attente.
- Désarmer le périphérique pour le réveil à distance s’il était armé.
D1/D2
Le pilote de bus effectue les tâches suivantes :
- Arme le périphérique pour le réveil à distance, si un IRP de veille (IRP_MN_WAIT_WAKE) est en attente.
- Suspend le port USB du périphérique en activant la fonctionnalité PORT_SUSPEND.
D3
Le pilote de bus effectue les tâches suivantes :
- Suspend le port USB du périphérique en activant la fonctionnalité PORT_SUSPEND.
- Complète l’IRP de veille du périphérique avec STATUS_POWER_STATE_INVALID, si l’un est en attente.
- Complète l’IRP de veille du périphérique (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) avec STATUS_POWER_STATE_INVALID, si l’un est en attente.
Modification de l'état d'alimentation d'un appareil composite
Un pilote client pour une interface sur un périphérique composite doit partager l’état de puissance du périphérique composite avec les pilotes clients des autres interfaces sur le périphérique. Par conséquent, un pilote client pour une interface ne peut pas mettre l'appareil composite dans un état d'alimentation inférieur sans affecter les autres interfaces de l'appareil. Le pilote parent générique USB (Usbccgp.sys) prend les actions suivantes lorsqu’un pilote client d’interface envoie une demande IRP_MN_SET_POWER.
D0
Le pilote de bus effectue les tâches suivantes :
- S’assure que tous les concentrateurs USB en amont sont alimentés et prêts à recevoir des demandes.
- Reprend le port en effaçant la fonctionnalité PORT_SUSPEND, si le port USB du périphérique est suspendu.
- Complète l’IRP de veille du pilote client avec STATUS_SUCCESS, si l’un est en attente.
D1/D2
Le pilote de bus n’entreprend aucune action.
D3
Le pilote de bus effectue les tâches suivantes :
- Complète l’IRP de veille du pilote client (IRP_MN_WAIT_WAKE) avec STATUS_POWER_STATE_INVALID, si l’un est en attente.
- Complète l’IRP de veille du pilote client (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) avec STATUS_POWER_STATE_INVALID, si l’un est en attente.
Le pilote parent générique suspend le port USB du périphérique lorsque l’une des conditions suivantes est vraie :
- Le système est en train de passer à un état de puissance inférieur.
- Les pilotes clients de toutes les fonctions de l'appareil composite ont lancé une suspension sélective.