Структура URB (usb.h)
Структура URB используется драйверами USB-клиента для описания блоков запросов USB (URB), которые отправляют запросы в стек драйверов USB. Структура URB определяет формат для всех возможных команд, которые можно отправить на USB-устройство.
Синтаксис
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;
Члены
UrbHeader
Предоставляет основные сведения о запросе, отправляемом драйверу контроллера узла. Дополнительные сведения см. в разделе _URB_HEADER.
UrbSelectInterface
Определяет формат команды интерфейса выбора для USB-устройства. Дополнительные сведения см. в разделе _URB_SELECT_INTERFACE.
UrbSelectConfiguration
Определяет формат команды выбора конфигурации для USB-устройства. Дополнительные сведения см. в разделе _URB_SELECT_CONFIGURATION.
UrbPipeRequest
Определяет формат команды для канала в конечной точке USB. Дополнительные сведения см. в разделе _URB_PIPE_REQUEST.
UrbFrameLengthControl
Не рекомендуется в операционных системах Windows 2000 и более поздних версий и не поддерживается корпорацией Майкрософт. Не используйте.
UrbGetFrameLength
Не рекомендуется в операционных системах Windows 2000 и более поздних версий и не поддерживается корпорацией Майкрософт. Не используйте.
UrbSetFrameLength
Не рекомендуется в операционных системах Windows 2000 и более поздних версий и не поддерживается корпорацией Майкрософт. Не используйте.
UrbGetCurrentFrameNumber
Определяет формат команды для получения текущего номера кадра на USB-шине. Дополнительные сведения см . в разделе _URB_GET_CURRENT_FRAME_NUMBER.
UrbControlTransfer
Определяет формат для команды для передачи или получения данных по каналу управления. Дополнительные сведения см. в разделе _URB_CONTROL_TRANSFER.
UrbControlTransferEx
Определяет формат для команды для передачи или получения данных по каналу управления. Дополнительные сведения см. в разделе _URB_CONTROL_TRANSFER_EX.
Определяет формат для команды для передачи или получения данных по каналу управления.
UrbBulkOrInterruptTransfer
Определяет формат для команды для передачи или получения данных по массовому каналу или для получения данных из канала прерывания. Дополнительные сведения см. в разделе _URB_BULK_OR_INTERRUPT_TRANSFER.
UrbIsochronousTransfer
Определяет формат изохронной передачи на USB-устройство. Дополнительные сведения см. в разделе _URB_ISOCH_TRANSFER.
UrbControlDescriptorRequest
Определяет формат команды для извлечения или задания дескрипторов на USB-устройстве. Дополнительные сведения см. в разделе _URB_CONTROL_DESCRIPTOR_REQUEST.
UrbControlGetStatusRequest
Определяет формат для команды для получения состояния с устройства, интерфейса или конечной точки. Дополнительные сведения см. в разделе _URB_CONTROL_GET_STATUS_REQUEST.
UrbControlFeatureRequest
Определяет формат команды для задания или очистки функций, определяемых USB, на устройстве, интерфейсе или конечной точке. Дополнительные сведения см. в разделе _URB_CONTROL_FEATURE_REQUEST.
UrbControlVendorClassRequest
Определяет формат для команды для отправки или получения запроса поставщика или класса на устройстве, интерфейсе, конечной точке или другом целевом объекте, определяемом устройством. Дополнительные сведения см. в разделе _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.
UrbControlGetInterfaceRequest
Определяет формат команды для получения текущего альтернативного параметра интерфейса для выбранного интерфейса. Дополнительные сведения см. в разделе _URB_CONTROL_GET_INTERFACE_REQUEST.
UrbControlGetConfigurationRequest
Определяет формат команды для получения текущей конфигурации устройства. Дополнительные сведения см. в разделе _URB_CONTROL_GET_CONFIGURATION_REQUEST.
UrbOSFeatureDescriptorRequest
Определяет формат команды для запроса дескриптора ОС Майкрософт. Дополнительные сведения см. в разделе _URB_OS_FEATURE_DESCRIPTOR_REQUEST.
UrbOpenStaticStreams
Определяет формат команды для открытия потоков в массовой конечной точке устройства USB 3.0. Дополнительные сведения см. в разделах _URB_OPEN_STATIC_STREAMS и Как открывать и закрывать статические потоки в массовой конечной точке USB.
UrbGetIsochPipeTransferPathDelays
Определяет формат для команды для получения задержек, связанных с изохронным программированием передачи в контроллере узла, и завершения передачи, чтобы драйвер клиента смог гарантировать, что устройство получает изохронные пакеты во времени. Дополнительные сведения см. в разделе _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.
Комментарии
Сведения о кодах функций, которые необходимо задать в каждой структуре, см. в разделе _URB_HEADER.
Требования
Требование | Значение |
---|---|
Заголовок | usb.h (включая Usb.h) |