Estrutura URB (usb.h)

A estrutura URB é usada por drivers de cliente USB para descrever URBs (blocos de solicitação USB) que enviam solicitações para a pilha de driver USB. A estrutura URB define um formato para todos os comandos possíveis que podem ser enviados para um dispositivo USB.

Sintaxe

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;

Membros

UrbHeader

Fornece informações básicas sobre a solicitação que está sendo enviada ao driver do controlador de host. Para obter mais informações, consulte _URB_HEADER.

UrbSelectInterface

Define o formato de um comando de interface select para um dispositivo USB. Para obter mais informações, consulte _URB_SELECT_INTERFACE.

UrbSelectConfiguration

Define o formato de um comando de configuração de seleção para um dispositivo USB. Para obter mais informações, consulte _URB_SELECT_CONFIGURATION.

UrbPipeRequest

Define o formato de um comando para um pipe em um ponto de extremidade USB. Para obter mais informações, consulte _URB_PIPE_REQUEST.

UrbFrameLengthControl

Preterido nos sistemas operacionais Windows 2000 e posteriores e não tem suporte da Microsoft. Não use.

UrbGetFrameLength

Preterido nos sistemas operacionais Windows 2000 e posteriores e não tem suporte da Microsoft. Não use.

UrbSetFrameLength

Preterido nos sistemas operacionais Windows 2000 e posteriores e não tem suporte da Microsoft. Não use.

UrbGetCurrentFrameNumber

Define o formato de um comando para obter o número de quadro atual em um barramento USB. Para obter mais informações, consulte _URB_GET_CURRENT_FRAME_NUMBER.

UrbControlTransfer

Define o formato de um comando para transmitir ou receber dados em um pipe de controle. Para obter mais informações, consulte _URB_CONTROL_TRANSFER.

UrbControlTransferEx

Define o formato de um comando para transmitir ou receber dados em um pipe de controle. Para obter mais informações, consulte _URB_CONTROL_TRANSFER_EX.

Define o formato de um comando para transmitir ou receber dados em um pipe de controle.

UrbBulkOrInterruptTransfer

Define o formato de um comando para transmitir ou receber dados em um pipe em massa ou para receber dados de um pipe de interrupção. Para obter mais informações, consulte _URB_BULK_OR_INTERRUPT_TRANSFER.

UrbIsochronousTransfer

Define o formato de uma transferência isócrona para um dispositivo USB. Para obter mais informações, consulte _URB_ISOCH_TRANSFER.

UrbControlDescriptorRequest

Define o formato de um comando para recuperar ou definir descritores em um dispositivo USB. Para obter mais informações, consulte _URB_CONTROL_DESCRIPTOR_REQUEST.

UrbControlGetStatusRequest

Define o formato de um comando para obter status de um dispositivo, interface ou ponto de extremidade. Para obter mais informações, consulte _URB_CONTROL_GET_STATUS_REQUEST.

UrbControlFeatureRequest

Define o formato de um comando para definir ou limpar recursos definidos por USB em um dispositivo, interface ou ponto de extremidade. Para obter mais informações, consulte _URB_CONTROL_FEATURE_REQUEST.

UrbControlVendorClassRequest

Define o formato de um comando para enviar ou receber uma solicitação específica de fornecedor ou classe em um dispositivo, interface, ponto de extremidade ou outro destino definido pelo dispositivo. Para obter mais informações, consulte _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.

UrbControlGetInterfaceRequest

Define o formato de um comando para obter a configuração de interface alternativa atual para uma interface selecionada. Para obter mais informações, consulte _URB_CONTROL_GET_INTERFACE_REQUEST.

UrbControlGetConfigurationRequest

Define o formato de um comando para obter a configuração atual de um dispositivo. Para obter mais informações, consulte _URB_CONTROL_GET_CONFIGURATION_REQUEST.

UrbOSFeatureDescriptorRequest

Define o formato de um comando para solicitar um Descritor do sistema operacional Microsoft. Para obter mais informações, consulte _URB_OS_FEATURE_DESCRIPTOR_REQUEST.

UrbOpenStaticStreams

Define o formato de um comando para abrir fluxos em um ponto de extremidade em massa de um dispositivo USB 3.0. Para obter mais informações, consulte _URB_OPEN_STATIC_STREAMS e Como abrir e fechar fluxos estáticos em um ponto de extremidade em massa USB.

UrbGetIsochPipeTransferPathDelays

Define o formato de um comando para recuperar atrasos associados à programação de transferência isocrona no controlador host e transferir a conclusão para que o driver cliente possa garantir que o dispositivo obtenha os pacotes isocronos a tempo. Para obter mais informações, consulte _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.

Comentários

Para obter informações sobre os códigos de função a serem definidos em cada estrutura, consulte _URB_HEADER.

Requisitos

Requisito Valor
Cabeçalho usb.h (inclua Usb.h)

Confira também

IOCTL_INTERNAL_USB_SUBMIT_URB

Estruturas USB