Compartir a través de


Estructura URB (usb.h)

Los controladores de cliente USB usan la estructura de 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 del host. Para obtener más información, vea _URB_HEADER.

UrbSelectInterface

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

UrbSelectConfiguration

Define el formato de un comando de configuración select para un dispositivo USB. Para obtener más información, vea _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, vea _URB_PIPE_REQUEST.

UrbFrameLengthControl

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

UrbGetFrameLength

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

UrbSetFrameLength

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

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, vea _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, vea _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, vea _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, vea _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, vea _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, vea _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, vea _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, vea _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, vea _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, vea _URB_CONTROL_GET_CONFIGURATION_REQUEST.

UrbOSFeatureDescriptorRequest

Define el formato de un comando para solicitar un descriptor de so de Microsoft. Para obtener más información, vea _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 con la programación de transferencia isócrónica en el controlador host y la finalización de 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, vea _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.

Observaciones

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

Requisitos

Requisito Valor
encabezado de usb.h (incluya Usb.h)

Consulte también

IOCTL_INTERNAL_USB_SUBMIT_URB

estructuras USB de