URB 構造体 (usb.h)

URB 構造体は、USB クライアント ドライバーが USB ドライバー スタックに要求を送信する USB 要求ブロック (URB) を記述するために使用されます。 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 デバイスの select インターフェイス コマンドの形式を定義します。 詳細については、「 _URB_SELECT_INTERFACE」を参照してください。

UrbSelectConfiguration

USB デバイスの select 構成コマンドの形式を定義します。 詳細については、「 _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」を参照してください。

要件

要件
Header usb.h (Usb.h を含む)

こちらもご覧ください

IOCTL_INTERNAL_USB_SUBMIT_URB

USB 構造体