Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 apresentadas aqui têm nomes consistentes com a especificação USB 3.0. A familiaridade com a especificação USB 3.0 aumentará ainda mais sua capacidade de usar os comandos de extensão para depurar drivers USB 3.0.
O driver do controlador de host USB 3.0 faz parte da pilha de driver principal usb 3.0. Para obter mais informações, consulte a arquitetura de pilha do driver USB.
Cada controlador de host USB 3.0 pode ter até 255 dispositivos e cada dispositivo pode ter até 31 pontos de extremidade. O diagrama a seguir mostra algumas das estruturas de dados que representam um controlador de host e os dispositivos conectados.
Matriz base de contexto do dispositivo
A Matriz base de contexto do dispositivo é uma matriz de ponteiros para estruturas de Contexto do Dispositivo. Há uma estrutura de Contexto de Dispositivo para cada dispositivo conectado ao controlador de host. Os elementos 1 a 255 apontam para estruturas de Contexto do Dispositivo. O elemento 0 aponta para uma estrutura de contexto para o controlador de host.
Contexto do dispositivo e contexto de 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 de Extremidade para cada ponto de extremidade no dispositivo. Elementos de 1 a 31 pontos para estruturas de contexto de ponto de extremidade. O elemento 0 aponta para uma estrutura de contexto de slot, que contém informações de contexto para o dispositivo.
Command Ring
O Anel de Comando é usado pelo software para passar comandos para o controlador de host. Alguns desses comandos são direcionados para o controlador de host e alguns são direcionados para determinados dispositivos conectados ao controlador de host.
Event Ring
O Anel de Evento é usado pelo controlador de host para passar eventos para o software. Ou seja, o Anel de Evento é uma estrutura que o controlador host usa para informar aos drivers que uma ação foi concluída.
Matriz de Registro de Campainha
O Doorbell Register Array é uma matriz de registros de campainha, um para cada dispositivo conectado ao controlador de host. Os elementos 1 a 255 são registros de campainha. O elemento 0 indica se há um comando pendente no Anel de Comando.
O software notifica o controlador de host de que ele tem um trabalho relacionado ao dispositivo ou ao ponto de extremidade a ser executado gravando informações de contexto no registro de 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 de extremidade tem um ou mais Anéis de Transferência. Um Anel de Transferência é uma matriz de TRBs (Blocos de Solicitação de Transferência). 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úcleos USB 3.0 recebe uma solicitação de transferência de um driver cliente USB, ela identifica o Contexto do Ponto de Extremidade para a transferência e, em seguida, divide a solicitação de transferência em um ou mais TDs (Descritores de Transferência). Cada TD contém um ou mais TRBs.
Endpoint Context
Uma estrutura de Contexto de Ponto de Extremidade 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.