estrutura USB_ENDPOINT_DESCRIPTOR (usbspec.h)
A estrutura USB_ENDPOINT_DESCRIPTOR é usada por drivers de cliente USB para recuperar um descritor de ponto de extremidade definido por USB. Os membros dessa estrutura são descritos na Especificação universal do Barramento Serial 3.1 disponível na 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, 0 para fora.
bmAttributes
Os dois bits de baixa ordem especificam o tipo de ponto de extremidade, um dos 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 isócronos 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, determina a frequência com que o driver deve iniciar uma interrupção ou uma transferência isócrona. O valor em bInterval não representa uma quantidade fixa 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 host ou o dispositivo operar em baixa velocidade, o período de tempo entre as transferências de interrupção (também conhecido como "período" de sondagem) será medido em unidades de 1 milissegundos, e o período estará relacionado ao valor em bInterval , conforme indicado na tabela a seguir:
Valor de bInterval | Período de sondagem (quadros de 1 milissegundos) | Interrupção |
---|---|---|
0 a 15 | 8 | Com suporte. |
16 a 35 | 16 | Com suporte. |
36 a 255 | 32 | Com suporte. |
> 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) | Interrupção | Isócrono |
---|---|---|---|
1 | 1 | Com suporte. | Com suporte. |
2 a 3 | 2 | Com suporte. | Com suporte. |
4 a 7 | 4 | Com suporte. | Com suporte. |
8 a 15 | 8 | Com suporte. | Com suporte. |
16 a 31 | 16 | Com suporte. | Não há suporte. |
32 a 255 | 32 | Com suporte. | 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 milissegundo. 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) | Interrupção | Isócrono |
---|---|---|---|
1 | 1 | Com suporte. | Com suporte. |
2 | 2 | Com suporte. | Com suporte. |
3 | 4 | Com suporte. | Com suporte. |
4 | 8 | Com suporte. | Com suporte. |
5 | 16 | Com suporte. | Não há suporte. |
6 | 32 | Com suporte. | Não há suporte. |
7 a 255 | 32 | Com suporte. | 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 nos sistemas operacionais Windows 2000 e posteriores.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | usbspec.h (inclua Usb100.h) |