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 デバイスの 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を参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | usb.h (Usb.h を含む) |