Estructura URB (usb.h)

Los controladores de cliente USB usan la estructura URB para describir los bloques de solicitudes USB (URB) que envían solicitudes a la pila del controlador USB. La estructura URB define un formato para todos los comandos posibles que se pueden enviar a un dispositivo USB.

Sintaxis

typedef struct _URB {
  union {
#if ...
    _URB_HEADER                                     UrbHeader;
#else
    struct _URB_HEADER                              UrbHeader;
#endif
#if ...
    _URB_SELECT_INTERFACE                           UrbSelectInterface;
#else
    struct _URB_SELECT_INTERFACE                    UrbSelectInterface;
#endif
#if ...
    _URB_SELECT_CONFIGURATION                       UrbSelectConfiguration;
#else
    struct _URB_SELECT_CONFIGURATION                UrbSelectConfiguration;
#endif
#if ...
    _URB_PIPE_REQUEST                               UrbPipeRequest;
#else
    struct _URB_PIPE_REQUEST                        UrbPipeRequest;
#endif
#if ...
    _URB_FRAME_LENGTH_CONTROL                       UrbFrameLengthControl;
#else
    struct _URB_FRAME_LENGTH_CONTROL                UrbFrameLengthControl;
#endif
#if ...
    _URB_GET_FRAME_LENGTH                           UrbGetFrameLength;
#else
    struct _URB_GET_FRAME_LENGTH                    UrbGetFrameLength;
#endif
#if ...
    _URB_SET_FRAME_LENGTH                           UrbSetFrameLength;
#else
    struct _URB_SET_FRAME_LENGTH                    UrbSetFrameLength;
#endif
#if ...
    _URB_GET_CURRENT_FRAME_NUMBER                   UrbGetCurrentFrameNumber;
#else
    struct _URB_GET_CURRENT_FRAME_NUMBER            UrbGetCurrentFrameNumber;
#endif
#if ...
    _URB_CONTROL_TRANSFER                           UrbControlTransfer;
#else
    struct _URB_CONTROL_TRANSFER                    UrbControlTransfer;
#endif
#if ...
    _URB_CONTROL_TRANSFER_EX                        UrbControlTransferEx;
#else
    struct _URB_CONTROL_TRANSFER_EX                 UrbControlTransferEx;
#endif
#if ...
    _URB_BULK_OR_INTERRUPT_TRANSFER                 UrbBulkOrInterruptTransfer;
#else
    struct _URB_BULK_OR_INTERRUPT_TRANSFER          UrbBulkOrInterruptTransfer;
#endif
#if ...
    _URB_ISOCH_TRANSFER                             UrbIsochronousTransfer;
#else
    struct _URB_ISOCH_TRANSFER                      UrbIsochronousTransfer;
#endif
#if ...
    _URB_CONTROL_DESCRIPTOR_REQUEST                 UrbControlDescriptorRequest;
#else
    struct _URB_CONTROL_DESCRIPTOR_REQUEST          UrbControlDescriptorRequest;
#endif
#if ...
    _URB_CONTROL_GET_STATUS_REQUEST                 UrbControlGetStatusRequest;
#else
    struct _URB_CONTROL_GET_STATUS_REQUEST          UrbControlGetStatusRequest;
#endif
#if ...
    _URB_CONTROL_FEATURE_REQUEST                    UrbControlFeatureRequest;
#else
    struct _URB_CONTROL_FEATURE_REQUEST             UrbControlFeatureRequest;
#endif
#if ...
    _URB_CONTROL_VENDOR_OR_CLASS_REQUEST            UrbControlVendorClassRequest;
#else
    struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST     UrbControlVendorClassRequest;
#endif
#if ...
    _URB_CONTROL_GET_INTERFACE_REQUEST              UrbControlGetInterfaceRequest;
#else
    struct _URB_CONTROL_GET_INTERFACE_REQUEST       UrbControlGetInterfaceRequest;
#endif
#if ...
    _URB_CONTROL_GET_CONFIGURATION_REQUEST          UrbControlGetConfigurationRequest;
#else
    struct _URB_CONTROL_GET_CONFIGURATION_REQUEST   UrbControlGetConfigurationRequest;
#endif
#if ...
    _URB_OS_FEATURE_DESCRIPTOR_REQUEST              UrbOSFeatureDescriptorRequest;
#else
    struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST       UrbOSFeatureDescriptorRequest;
#endif
#if ...
    _URB_OPEN_STATIC_STREAMS                        UrbOpenStaticStreams;
#else
    struct _URB_OPEN_STATIC_STREAMS                 UrbOpenStaticStreams;
#endif
#if ...
    _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS        UrbGetIsochPipeTransferPathDelays;
#else
    struct _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS UrbGetIsochPipeTransferPathDelays;
#endif
  };
} URB, *PURB;

Miembros

UrbHeader

Proporciona información básica sobre la solicitud que se envía al controlador del controlador de host. Para obtener más información, consulte _URB_HEADER.

UrbSelectInterface

Define el formato de un comando select interface para un dispositivo USB. Para obtener más información, consulte _URB_SELECT_INTERFACE.

UrbSelectConfiguration

Define el formato de un comando de configuración select para un dispositivo USB. Para obtener más información, consulte _URB_SELECT_CONFIGURATION.

UrbPipeRequest

Define el formato de un comando para una canalización en un punto de conexión USB. Para obtener más información, consulte _URB_PIPE_REQUEST.

UrbFrameLengthControl

Está en desuso en los sistemas operativos Windows 2000 y versiones posteriores y no es compatible con Microsoft. No debe usarse.

UrbGetFrameLength

Está en desuso en los sistemas operativos Windows 2000 y versiones posteriores y no es compatible con Microsoft. No debe usarse.

UrbSetFrameLength

Está en desuso en los sistemas operativos Windows 2000 y versiones posteriores y no es compatible con Microsoft. No debe usarse.

UrbGetCurrentFrameNumber

Define el formato de un comando para obtener el número de fotograma actual en un bus USB. Para obtener más información, consulte _URB_GET_CURRENT_FRAME_NUMBER.

UrbControlTransfer

Define el formato de un comando para transmitir o recibir datos en una canalización de control. Para obtener más información, consulte _URB_CONTROL_TRANSFER.

UrbControlTransferEx

Define el formato de un comando para transmitir o recibir datos en una canalización de control. Para obtener más información, consulte _URB_CONTROL_TRANSFER_EX.

Define el formato de un comando para transmitir o recibir datos en una canalización de control.

UrbBulkOrInterruptTransfer

Define el formato de un comando para transmitir o recibir datos en una canalización masiva o para recibir datos de una canalización de interrupción. Para obtener más información, consulte _URB_BULK_OR_INTERRUPT_TRANSFER.

UrbIsochronousTransfer

Define el formato de una transferencia isócrónica a un dispositivo USB. Para obtener más información, consulte _URB_ISOCH_TRANSFER.

UrbControlDescriptorRequest

Define el formato de un comando para recuperar o establecer descriptores en un dispositivo USB. Para obtener más información, consulte _URB_CONTROL_DESCRIPTOR_REQUEST.

UrbControlGetStatusRequest

Define el formato de un comando para obtener el estado de un dispositivo, una interfaz o un punto de conexión. Para obtener más información, consulte _URB_CONTROL_GET_STATUS_REQUEST.

UrbControlFeatureRequest

Define el formato de un comando para establecer o borrar las características definidas por USB en un dispositivo, interfaz o punto de conexión. Para obtener más información, consulte _URB_CONTROL_FEATURE_REQUEST.

UrbControlVendorClassRequest

Define el formato de un comando para enviar o recibir una solicitud específica de proveedor o clase en un dispositivo, interfaz, punto de conexión u otro destino definido por el dispositivo. Para obtener más información, consulte _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.

UrbControlGetInterfaceRequest

Define el formato de un comando para obtener la configuración de interfaz alternativa actual para una interfaz seleccionada. Para obtener más información, consulte _URB_CONTROL_GET_INTERFACE_REQUEST.

UrbControlGetConfigurationRequest

Define el formato de un comando para obtener la configuración actual de un dispositivo. Para obtener más información, consulte _URB_CONTROL_GET_CONFIGURATION_REQUEST.

UrbOSFeatureDescriptorRequest

Define el formato de un comando para solicitar un descriptor de sistema operativo de Microsoft. Para obtener más información, consulte _URB_OS_FEATURE_DESCRIPTOR_REQUEST.

UrbOpenStaticStreams

Define el formato de un comando para abrir secuencias en un punto de conexión masivo de un dispositivo USB 3.0. Para obtener más información, vea _URB_OPEN_STATIC_STREAMS y Cómo abrir y cerrar secuencias estáticas en un punto de conexión masivo USB.

UrbGetIsochPipeTransferPathDelays

Define el formato de un comando para recuperar retrasos asociados a la programación de transferencia isócrónica en el controlador host y la finalización de la transferencia para que el controlador cliente pueda asegurarse de que el dispositivo obtiene los paquetes isócronos en el tiempo. Para obtener más información, consulte _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.

Comentarios

Para obtener información sobre los códigos de función que se van a establecer en cada estructura, consulte _URB_HEADER.

Requisitos

Requisito Valor
Header usb.h (incluye Usb.h)

Consulte también

IOCTL_INTERNAL_USB_SUBMIT_URB

Estructuras USB