estructura USB_ENDPOINT_DESCRIPTOR (usbspec.h)
Los controladores de cliente USB usan la estructura USB_ENDPOINT_DESCRIPTOR para recuperar un descriptor de punto de conexión definido por USB. Los miembros de esta estructura se describen en la especificación Universal Serial Bus 3.1 disponible en la biblioteca de documentos USB. Consulte la sección 9.6.6.
Sintaxis
typedef struct _USB_ENDPOINT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bEndpointAddress;
UCHAR bmAttributes;
USHORT wMaxPacketSize;
UCHAR bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
Miembros
bLength
Especifica la longitud, en bytes, de este descriptor.
bDescriptorType
Especifica el tipo de descriptor. Debe establecerse en USB_ENDPOINT_DESCRIPTOR_TYPE.
bEndpointAddress
Especifica la dirección del punto de conexión definido por USB. Los cuatro bits de orden bajo especifican el número de punto de conexión. El bit de orden superior especifica la dirección del flujo de datos en este punto de conexión: 1 para entrada y 0 para salida.
bmAttributes
Los dos bits de orden bajo especifican el tipo de punto de conexión, uno de USB_ENDPOINT_TYPE_CONTROL, USB_ENDPOINT_TYPE_ISOCHRONOUS, USB_ENDPOINT_TYPE_BULK o USB_ENDPOINT_TYPE_INTERRUPT.
wMaxPacketSize
Especifica el tamaño máximo de paquete que se puede enviar desde o a este punto de conexión.
bInterval
El valor bInterval contiene el intervalo de sondeo de los puntos de conexión de interrupción e isócrono. En el caso de otros tipos de punto de conexión, este valor debe omitirse. Este valor refleja la configuración del dispositivo en el firmware. Los controladores no pueden cambiarlo.
El intervalo de sondeo, junto con la velocidad del dispositivo y el tipo de controlador host, determinan la frecuencia con la que el controlador debe iniciar una interrupción o una transferencia isócrónica. El valor de bInterval no representa una cantidad fija de tiempo. Es un valor relativo y la frecuencia de sondeo real también dependerá de si el dispositivo y el controlador del host USB funcionan a baja, completa o alta velocidad.
Si el controlador host o el dispositivo funcionan a baja velocidad, el período de tiempo entre transferencias de interrupción (también conocido como "período de sondeo") se mide en unidades de 1 milisegundos y el período está relacionado con el valor de bInterval como se indica en la tabla siguiente:
Valor de bInterval | Período de sondeo (fotogramas de 1 milisegundos) | Interrupción |
---|---|---|
De 0 a 15 | 8 | Compatible. |
De 16 a 35 | 16 | Compatible. |
De 36 a 255 | 32 | Compatible. |
> 255 | Los intervalos de sondeo > 255 están prohibidos por la especificación USB. |
En el caso de los dispositivos y controladores host que pueden funcionar a toda velocidad, el período se mide en unidades de 1 milisegundos y el período está relacionado con el valor de bInterval , como se indica en la tabla siguiente:
Valor de bInterval | Período de sondeo (fotogramas de 1 milisegundos) | Interrupción | Isócrono |
---|---|---|---|
1 | 1 | Compatible. | Compatible. |
De 2 a 3 | 2 | Compatible. | Compatible. |
De 4 a 7 | 4 | Compatible. | Compatible. |
8 a 15 | 8 | Compatible. | Compatible. |
De 16 a 31 | 16 | Compatible. | No compatible. |
De 32 a 255 | 32 | Compatible. | No compatible. |
> 255 | Los intervalos de sondeo > 255 están prohibidos por la especificación USB. |
En el caso de los dispositivos y controladores host que pueden funcionar a alta velocidad, el período se mide en unidades de microframes. Hay ocho microframes en cada fotograma de 1 milisegundos. El punto está relacionado con el valor de bInterval por la fórmula Period = 2 ** (bInterval - 1), como se indica en la tabla siguiente:
Valor de bInterval | Período de sondeo (microframes) | Interrupción | Isócrono |
---|---|---|---|
1 | 1 | Compatible. | Compatible. |
2 | 2 | Compatible. | Compatible. |
3 | 4 | Compatible. | Compatible. |
4 | 8 | Compatible. | Compatible. |
5 | 16 | Compatible. | No compatible. |
6 | 32 | Compatible. | No compatible. |
De 7 a 255 | 32 | Compatible. | No compatible. |
> 255 | La especificación USB prohíbe los intervalos de sondeo > 255. |
Las asignaciones de las tablas anteriores entre períodos e intervalos de sondeo son válidas en los sistemas operativos Windows 2000 y versiones posteriores.
Requisitos
Requisito | Valor |
---|---|
Header | usbspec.h (incluye Usb100.h) |