Partager via


Structures de données USB 3.0

Cette rubrique décrit les structures de données utilisées par le pilote du contrôleur hôte USB 3.0. Understanding these data structures will help you use the USB 3.0 and RCDRKD debugger extension commands effectively. Les structures de données présentées ici ont des noms cohérents avec la spécification USB 3.0. La connaissance de la spécification USB 3.0 améliore davantage votre capacité à utiliser les commandes d’extension pour déboguer les pilotes USB 3.0.

Le pilote du contrôleur hôte USB 3.0 fait partie de la pile de pilotes USB 3.0 core. Pour plus d’informations, consultez Architecture de la pile des pilotes USB.

Chaque contrôleur hôte USB 3.0 peut avoir jusqu’à 255 appareils, et chaque appareil peut avoir jusqu’à 31 points de terminaison. Le diagramme suivant illustre certaines des structures de données qui représentent un contrôleur hôte et les appareils connectés.

Diagramme montrant les structures de données USB 3.0 représentant un contrôleur hôte et des appareils connectés avec le contexte d’appareil, le contexte d’emplacement et le contexte de point de terminaison.

Tableau de base de contexte d’appareil

Le tableau de base de contexte d’appareil est un tableau de pointeurs vers des structures de contexte d’appareil. Il existe une structure de contexte d’appareil pour chaque appareil connecté au contrôleur hôte. Les éléments 1 à 255 pointent vers des structures de contexte d’appareil. L’élément 0 pointe vers une structure de contexte pour le contrôleur hôte.

Contexte d’appareil et contexte d’emplacement

Une structure de contexte d’appareil contient un tableau de pointeurs vers des structures de contexte de point de terminaison. Il existe une structure de contexte de point de terminaison pour chaque point de terminaison sur l’appareil. Éléments 1 à 31 point vers des structures de contexte de point de terminaison. L’élément 0 pointe vers une structure de contexte d’emplacement, qui contient des informations de contexte pour l’appareil.

Command Ring

L’anneau de commandes est utilisé par le logiciel pour passer des commandes au contrôleur hôte. Certaines de ces commandes sont dirigées vers le contrôleur hôte, et certaines sont dirigées vers des appareils particuliers connectés au contrôleur hôte.

Event Ring

L’anneau d’événements est utilisé par le contrôleur hôte pour passer des événements à des logiciels. Autrement dit, l’anneau d’événements est une structure que le contrôleur hôte utilise pour informer les pilotes qu’une action est terminée.

Doorbell Register Array

Doorbell Register Array est un tableau de registres doorbell, un pour chaque appareil connecté au contrôleur hôte. Les éléments 1 à 255 sont des registres de porte-porte. L’élément 0 indique s’il existe une commande en attente dans l’anneau de commandes.

Le logiciel avertit le contrôleur hôte qu’il dispose d’un travail lié à l’appareil ou au point de terminaison à effectuer en écrivant des informations contextuelles dans le registre doorbell de l’appareil.

Le diagramme suivant continue à droite du diagramme précédent. Il affiche des structures de données supplémentaires qui représentent un point de terminaison unique.

Diagramme illustrant la structure de données USB 3.0 avec un contexte de point de terminaison contenant plusieurs trb avec des données et des TD.

Transfer Ring

Chaque point de terminaison a un ou plusieurs anneaux de transfert. Un anneau de transfert est un tableau de blocs de demandes de transfert (TRB). Chaque TRB pointe vers un bloc de données contiguës (jusqu’à 64 Ko) qui sera transféré entre le matériel et la mémoire sous la forme d’une unité unique.

Lorsque la pile USB 3.0 cœur reçoit une demande de transfert à partir d’un pilote client USB, elle identifie le contexte de point de terminaison du transfert, puis interrompt la demande de transfert en un ou plusieurs descripteurs de transfert (TD). Chaque TD contient un ou plusieurs TRB.

Endpoint Context

Une structure de contexte de point de terminaison contient des informations de contexte pour un point de terminaison unique. It also has Dequeue and Enqueue members, which are used to track where TRBs are being consumed by the hardware and where TRBs are being added by software.

See also

Innovations de débogage USB dans Windows 8