Share via


États d’alimentation du périphérique USB

Cette rubrique décrit les états d’appareil WDM à utiliser pour les états d’alimentation des périphériques USB, comme spécifié dans la section 9.1 de la spécification Universal Serial Bus 2.0.

Les états d’alimentation des périphériques USB (comme spécifié 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 :

  • Attaché : l’appareil est attaché, mais n’est pas entièrement alimenté.
  • Alimenté : l’appareil est dans l’un des états entièrement alimentés : Par défaut, Adresse ou Configuré.
  • Suspendu : l’appareil est à l’état Inactif et fonctionne avec une faible consommation d’énergie.

Il n’existe aucune corrélation directe entre les états d’alimentation de l’appareil définis dans le modèle d’alimentation WDM et les états d’alimentation de l’appareil définis dans la norme USB. Par exemple, les termes suspendus et inactifs ont une signification très spécifique dans la spécification USB ; Toutefois, ces termes sont souvent utilisés différemment dans le modèle d’alimentation WDM. Les pilotes clients Windows peuvent placer un périphérique USB dans l’état Suspendu. Pour plus d’informations, consultez Suspension sélective USB. Lorsqu’un pilote client est prêt à suspendre son appareil, il indique au pilote de bus de l’inactiver. Pour plus d’informations sur les demandes inactives, consultez Suspension sélective USB.

Les états d’alimentation des appareils dans le modèle WDM peuvent être résumés comme suit :

  • D0 : état de fonctionnement. L’appareil est entièrement alimenté.
  • D1/D2 : états de veille intermédiaires. Ces états permettent à l’appareil d’être armé pour la mise en éveil à distance.
  • D3 : état de veille le plus profond. Les appareils dans l’état D3 ne peuvent pas être armés pour la mise en éveil à distance.

Pour une présentation complète des états d’alimentation des appareils dans le modèle d’alimentation WDM, consultez État de l’alimentation des appareils.

Le modèle d’alimentation WDM utilise le terme arming des appareils pour la mise en éveil à distance. L’arming est une opération logicielle qui, normalement, mais pas toujours, conduit à l’opération matérielle d’activation de la fonctionnalité de mise en éveil à distance sur un périphérique USB. L’opération logicielle WDM qui arme un appareil pour la mise en éveil à distance est l’IRP de veille (IRP_MN_WAIT_WAKE). Pour plus d’informations sur cette IRP, consultez Prise en charge des appareils dotés de fonctionnalités Wake-Up.

Pour obtenir une explication de la relation entre cette opération logicielle et l’activation de la fonctionnalité de mise en éveil à distance USB, consultez Mise en éveil à distance des périphériques USB.

Cette section contient les sous-sections suivantes :

Modification de l’état d’alimentation d’un appareil non composite

Le gestionnaire de stratégie d’alimentation d’un périphérique USB est chargé de définir l’état d’alimentation de l’appareil. Le gestionnaire de stratégie d’alimentation définit l’état d’alimentation en émettant un IRP d’alimentation WDM (IRP_MN_SET_POWER). Pour plus d’informations sur le gestionnaire de stratégie d’alimentation, consultez Power Policy Ownership.

Les actions effectuées par le pilote de bus dépendent du niveau d’alimentation de l’appareil que le gestionnaire de stratégie d’alimentation demande. La liste suivante répertorie les actions que le pilote de bus effectue pour chaque niveau de demande d’alimentation définie :

  • D0

    Le pilote de bus effectue les tâches suivantes :

    1. Garantit que tous les hubs USB upsteam sont alimentés et prêts à recevoir des demandes.
    2. Reprend le port en désactivant la fonctionnalité PORT_SUSPEND, si le port USB de l’appareil est suspendu.
    3. Termine le IRP inactif de l’appareil avec STATUS_SUCCESS, le cas échéant.
    4. Désarmez l’appareil pour la sortie de veille à distance s’il était armé.
  • D1/D2

    Le pilote de bus effectue les tâches suivantes :

    1. Arme l’appareil pour la mise en éveil à distance, si un IRP de veille d’attente (IRP_MN_WAIT_WAKE) est en attente.
    2. Suspend le port USB de l’appareil en définissant la fonctionnalité PORT_SUSPEND.
  • D3

    Le pilote de bus effectue les tâches suivantes :

    1. Suspend le port USB de l’appareil en définissant la fonctionnalité PORT_SUSPEND.
    2. Termine l’IRP de veille d’attente de l’appareil avec STATUS_POWER_STATE_INVALID, le cas échéant.
    3. Termine l’IRP inactif (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) de l’appareil avec STATUS_POWER_STATE_INVALID, le cas échéant.

Modification de l’état d’alimentation d’un appareil composite

Un pilote client pour une interface sur un appareil composite doit partager l’état d’alimentation du périphérique composite avec les pilotes clients pour les autres interfaces sur l’appareil. Par conséquent, un pilote client pour une interface ne peut pas mettre le périphérique composite dans un état d’alimentation inférieur sans affecter d’autres interfaces sur l’appareil. Le pilote parent générique USB (Usbccgp.sys) effectue les actions suivantes lorsque le pilote client d’une interface envoie une demande de IRP_MN_SET_POWER .

  • D0

    Le pilote de bus effectue les tâches suivantes :

    1. Garantit que tous les hubs USB upsteam sont alimentés et prêts à recevoir des demandes.
    2. Reprend le port en désactivant la fonctionnalité PORT_SUSPEND, si le port USB de l’appareil est suspendu.
    3. Termine l’IRP inactive du pilote client avec STATUS_SUCCESS, le cas échéant.
  • D1/D2

    Le conducteur de bus n’effectue aucune action.

  • D3

    Le pilote de bus effectue les tâches suivantes :

    1. Termine l’IRP de sortie d’attente (IRP_MN_WAIT_WAKE) du pilote client avec STATUS_POWER_STATE_INVALID, le cas échéant.
    2. Termine l’IRP inactive (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) du pilote client avec STATUS_POWER_STATE_INVALID, le cas échéant.

Le pilote parent générique interrompt le port USB du périphérique lorsque l’une des conditions suivantes est remplie :

  • Le système passe à un état de puissance inférieure.
  • Les pilotes clients pour toutes les fonctions sur l’appareil composite ont lancé une interruption sélective.

Gestion de l’alimentation USB