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) |