Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
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.
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.