estrutura USB_ENDPOINT_DESCRIPTOR (usbspec.h)
A estrutura USB_ENDPOINT_DESCRIPTOR é usada por drivers cliente USB para recuperar um descritor de ponto de extremidade definido por USB. Os membros dessa estrutura são descritos na Especificação do Barramento Serial Universal 3.1 disponível em biblioteca de documentos USB. Consulte a seção 9.6.6.
Sintaxe
typedef struct _USB_ENDPOINT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bEndpointAddress;
UCHAR bmAttributes;
USHORT wMaxPacketSize;
UCHAR bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
Membros
bLength
Especifica o comprimento, em bytes, desse descritor.
bDescriptorType
Especifica o tipo de descritor. Deve ser definido como USB_ENDPOINT_DESCRIPTOR_TYPE.
bEndpointAddress
Especifica o endereço do ponto de extremidade definido por USB. Os quatro bits de ordem baixa especificam o número do ponto de extremidade. O bit de alta ordem especifica a direção do fluxo de dados neste ponto de extremidade: 1 para entrada e 0 para fora.
bmAttributes
Os dois bits de ordem baixa especificam o tipo de ponto de extremidade, um de USB_ENDPOINT_TYPE_CONTROL, USB_ENDPOINT_TYPE_ISOCHRONOUS, USB_ENDPOINT_TYPE_BULK ou USB_ENDPOINT_TYPE_INTERRUPT.
wMaxPacketSize
Especifica o tamanho máximo do pacote que pode ser enviado de ou para esse ponto de extremidade.
bInterval
O valor bInterval contém o intervalo de sondagem para pontos de extremidade isocronos e de interrupção. Para outros tipos de ponto de extremidade, esse valor deve ser ignorado. Esse valor reflete a configuração do dispositivo no firmware. Os drivers não podem alterá-lo.
O intervalo de sondagem, juntamente com a velocidade do dispositivo e o tipo de controlador de host, determinam a frequência com que o driver deve iniciar uma interrupção ou uma transferência isocrona. O valor em bInterval não representa um período fixo de tempo. É um valor relativo e a frequência de sondagem real também dependerá se o dispositivo e o controlador de host USB operam em velocidade baixa, completa ou alta.
Se o controlador de host ou o dispositivo opera em baixa velocidade, o período de tempo entre transferências de interrupção (também conhecido como "ponto") de sondagem é medido em unidades de 1 milissegundos de quadros, e o período está relacionado ao valor em bInterval conforme indicado na tabela a seguir:
Valor de bInterval | Período de sondagem (quadros de 1 milissegundos) | Interromper |
---|---|---|
0 a 15 | 8 | Suportado. |
16 a 35 | 16 | Suportado. |
36 a 255 | 32 | Suportado. |
> 255 | Intervalos de sondagem > 255 são proibidos pela especificação USB. |
Para dispositivos e controladores de host que podem operar a toda velocidade, o período é medido em unidades de 1 milissegundos de quadros e o período está relacionado ao valor em bInterval conforme indicado na tabela a seguir:
Valor de bInterval | Período de sondagem (quadros de 1 milissegundos) | Interromper | Isócrono |
---|---|---|---|
1 | 1 | Suportado. | Suportado. |
2 a 3 | 2 | Suportado. | Suportado. |
4 a 7 | 4 | Suportado. | Suportado. |
8 a 15 | 8 | Suportado. | Suportado. |
16 a 31 | 16 | Suportado. | Não há suporte. |
32 a 255 | 32 | Suportado. | Não há suporte. |
> 255 | Intervalos de sondagem > 255 são proibidos pela especificação USB. |
Para dispositivos e controladores de host que podem operar em alta velocidade, o período é medido em unidades de microframes. Há oito microframes em cada quadro de 1 milissegundos. O período está relacionado ao valor em bInterval pela fórmula Period = 2 ** (bInterval - 1), conforme indicado na tabela a seguir:
Valor de bInterval | Período de sondagem (microframes) | Interromper | Isócrono |
---|---|---|---|
1 | 1 | Suportado. | Suportado. |
2 | 2 | Suportado. | Suportado. |
3 | 4 | Suportado. | Suportado. |
4 | 8 | Suportado. | Suportado. |
5 | 16 | Suportado. | Não há suporte. |
6 | 32 | Suportado. | Não há suporte. |
7 a 255 | 32 | Suportado. | Não há suporte. |
> 255 | Intervalos de sondagem > 255 são proibidos pela especificação USB. |
Os mapeamentos nas tabelas anteriores entre períodos e intervalos de sondagem são válidos em sistemas operacionais Windows 2000 e posteriores.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | usbspec.h (inclua Usb100.h) |