Структура 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) |