estructura USB_DESCRIPTOR_REQUEST (usbioctl.h)
La estructura USB_DESCRIPTOR_REQUEST se usa con la solicitud de control de E/S IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION para recuperar uno o varios descriptores para el dispositivo asociado al índice de conexión indicado. Los campos de esta estructura se describen en la especificación Universal Serial Bus 3.1 disponible en la biblioteca de documentos USB.
Sintaxis
typedef struct _USB_DESCRIPTOR_REQUEST {
ULONG ConnectionIndex;
struct {
UCHAR bmRequest;
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
} SetupPacket;
UCHAR Data[0];
} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;
Miembros
ConnectionIndex
Puerto cuyos descriptores se recuperan.
SetupPacket
Los miembros de la estructura SetupPacket definidas según la especificación oficial. Consulte la sección 9.3.
SetupPacket.bmRequest
Tipo de solicitud de dispositivo USB (estándar, clase o proveedor), la dirección de la transferencia de datos y el tipo de destinatario de datos (dispositivo, interfaz o punto de conexión). En la entrada de la solicitud de control de E/S de IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION , la pila USB omite el valor de bmRequest e inserta un valor de 0x80. Este valor indica una solicitud de dispositivo USB estándar y una transferencia de datos de dispositivo a host.
SetupPacket.bRequest
Número de solicitud. En la entrada de la solicitud de control de E/S de IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION , la pila USB omite el valor de bRequest e inserta un valor de 0x06. Este valor indica una solicitud de GET_DESCRIPTOR.
SetupPacket.wValue
En la entrada de la solicitud de control de E/S de IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION , el autor de la llamada debe especificar el tipo de descriptor que se va a recuperar en el byte alto de wValue y el índice del descriptor en el byte bajo. En la tabla siguiente se enumeran los posibles tipos de descriptores. Estos tipos de constantes se definen en el encabezado Usbspec.h incluido en el Kit de controladores de Windows.
Tipo de descriptor | Significado |
---|---|
USB_DEVICE_DESCRIPTOR_TYPE | Indica a la pila USB que devuelva el descriptor del dispositivo. |
USB_CONFIGURATION_DESCRIPTOR_TYPE | Indica a la pila USB que devuelva el descriptor de configuración y todas las interfaces, puntos de conexión, específicos de clase y descriptores específicos del proveedor asociados a la configuración actual. |
USB_STRING_DESCRIPTOR_TYPE | Indica a la pila USB que devuelva el descriptor de cadena indicado. |
USB_INTERFACE_DESCRIPTOR_TYPE | Indica a la pila USB que devuelva el descriptor de interfaz indicado. |
USB_ENDPOINT_DESCRIPTOR_TYPE | Indica a la pila USB que devuelva el descriptor de punto de conexión indicado. |
SetupPacket.wIndex
Índice específico del dispositivo del descriptor que se va a recuperar.
SetupPacket.wLength
Longitud de los datos que se transfieren durante la segunda fase de la transferencia de control.
Data[0]
En la salida de la solicitud de control de E/S de IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION , este miembro contiene los descriptores recuperados.
Comentarios
Si el autor de la llamada especifica un valor de USB_CONFIGURATION_DESCRIPTOR_TYPE en el miembro wValue , el búfer de salida debe ser lo suficientemente grande como para contener todos los descriptores asociados a la configuración actual o se producirá un error en la solicitud.
Requisitos
Requisito | Valor |
---|---|
Header | usbioctl.h (incluya Usbioctl.h) |