Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve as estruturas de dados usadas pelo driver do controlador de host USB 3.0. Understanding these data structures will help you use the USB 3.0 and RCDRKD debugger extension commands effectively. As estruturas de dados aqui apresentadas têm nomes consistentes com a especificação USB 3.0. A familiaridade com a especificação USB 3.0 irá melhorar ainda mais a sua capacidade de usar os comandos de extensão para depurar drivers USB 3.0.
O driver do controlador host USB 3.0 faz parte da pilha de driver principal USB 3.0. Para obter mais informações, consulte USB Driver Stack Architecture.
Cada controlador host USB 3.0 pode ter até 255 dispositivos, e cada dispositivo pode ter até 31 terminais. O diagrama a seguir mostra algumas das estruturas de dados que representam um controlador host e os dispositivos conectados.
Matriz base de contexto do dispositivo
A Matriz Base de Contexto de Dispositivo é uma matriz de ponteiros para estruturas de Contexto de Dispositivo. Há uma estrutura de contexto de dispositivo para cada dispositivo conectado ao controlador host. Os elementos 1 a 255 apontam para estruturas de Contexto de Dispositivo. O elemento 0 aponta para uma estrutura de contexto para o controlador host.
Contexto do dispositivo e contexto do slot
Uma estrutura de Contexto de Dispositivo contém uma matriz de ponteiros para estruturas de Contexto de Ponto de Extremidade. Há uma estrutura de Contexto de Ponto Final para cada ponto de extremidade no dispositivo. Os elementos 1 a 31 apontam para estruturas de contexto de ponto final. O elemento 0 aponta para uma estrutura de contexto de slot, que contém informações de contexto para o dispositivo.
Command Ring
O Command Ring é usado pelo software para passar comandos para o controlador host. Alguns desses comandos são direcionados ao controlador host e alguns são direcionados a dispositivos específicos conectados ao controlador host.
Event Ring
O Event Ring é usado pelo controlador host para passar eventos para o software. Ou seja, o Event Ring é uma estrutura que o controlador host usa para informar os drivers de que uma ação foi concluída.
Matriz de registro de campainha
O Doorbell Register Array é um conjunto de registradores de campainha, um para cada dispositivo conectado ao controlador host. Os elementos 1 a 255 são registos de campainhas. O elemento 0 indica se há um comando pendente no Command Ring.
O software notifica o controlador host de que ele tem trabalho relacionado ao dispositivo ou ao ponto de extremidade a ser executado, gravando informações de contexto no registro da campainha do dispositivo.
O diagrama a seguir continua à direita do diagrama anterior. Ele mostra estruturas de dados adicionais que representam um único ponto de extremidade.
Transfer Ring
Cada ponto final tem um ou mais anéis de transferência. Um anel de transferência é uma matriz de blocos de solicitação de transferência (TRBs). Cada TRB aponta para um bloco de dados contíguos (até 64 KB) que serão transferidos entre hardware e memória como uma única unidade.
Quando a pilha de núcleo USB 3.0 recebe uma solicitação de transferência de um driver de cliente USB, ela identifica o contexto do ponto final para a transferência e, em seguida, divide a solicitação de transferência em um ou mais descritores de transferência (TDs). Cada TD contém um ou mais TRB.
Endpoint Context
Uma estrutura de Contexto de Ponto Final contém informações de contexto para um único ponto de extremidade. 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.