URB 結構 (usb.h)

USB 用戶端驅動程式會使用 URB 結構來描述將要求傳送至 USB 驅動程式堆疊的 USB 要求區塊 (URL) 。 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 和更新版本的作業系統中已被取代,Microsoft 不支援。 請勿使用。

UrbGetFrameLength

在 Windows 2000 和更新版本的作業系統中已被取代,Microsoft 不支援。 請勿使用。

UrbSetFrameLength

在 Windows 2000 和更新版本的作業系統中已被取代,Microsoft 不支援。 請勿使用。

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

定義命令要求 Microsoft OS 描述元的格式。 如需詳細資訊,請參閱 _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)

另請參閱

IOCTL_INTERNAL_USB_SUBMIT_URB

USB 結構