Partilhar via


Estruturas de dados USB 3.0

Este tópico descreve as estruturas de dados usadas pelo driver do controlador de host USB 3.0. Entender essas estruturas de dados ajudará você a usar os comandos de extensão de depurador USB 3.0 e RCDRKD com eficiência. 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 do driver de núcleo USB 3.0. Para obter mais informações, consulte 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.

Diagrama mostrando estruturas de dados USB 3.0 que representam um controlador de host e dispositivos conectados com contexto de dispositivo, contexto de slot e contexto de ponto de extremidade.

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 do 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. Os elementos de 1 a 31 apontam 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.

Anel de Comando

O Anel de Comando é usado pelo software para passar comandos para o controlador de host. Alguns desses comandos são direcionados para o controlador host e alguns são direcionados para dispositivos específicos conectados ao controlador host.

Anel de Evento

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 host de que ele tem trabalho relacionado ao dispositivo ou ao ponto de extremidade a ser executado escrevendo 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.

Diagrama ilustrando a estrutura de dados USB 3.0 com contexto de ponto de extremidade que contém vários TRBs com dados e TDs.

Anel de Transferência

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 de 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.

Contexto do ponto de extremidade

Uma estrutura de Contexto de Ponto de Extremidade contém informações de contexto para um único ponto de extremidade. Ele também tem membros Dequeue e Enqueue , que são usados para rastrear onde os TRBs estão sendo consumidos pelo hardware e onde os TRBs estão sendo adicionados pelo software.

Confira também

Inovações de depuração USB no Windows 8