_URB_SELECT_INTERFACE 構造体は、インターフェイスの代替設定を選択したり、USB デバイス上の現在の構成のパイプの最大パケット サイズを変更したりするために、USB クライアント ドライバーによって使用されます。
構文
struct _URB_SELECT_INTERFACE {
struct _URB_HEADER Hdr;
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
USBD_INTERFACE_INFORMATION Interface;
};
メンバーズ
Hdr
URB ヘッダー情報を指定する _URB_HEADER 構造体へのポインター。 Hdr.Function はURB_FUNCTION_SELECT_INTERFACEする必要があり、Hdr.Length は URB 全体のサイズである必要があります。
ConfigurationHandle
このインターフェイスが属する構成のハンドルを指定します。 ホスト コントローラー ドライバーは、クライアントがURB_FUNCTION_SELECT_CONFIGURATION要求を含む構成を選択すると、このハンドルを返します。
Interface
インターフェイスとそのインターフェイスの新しい代替設定を指定する可変長 USBD_INTERFACE_INFORMATION 構造体。必要に応じて、対応するパイプの新しい最大パケット サイズ。 詳細については、「解説」を参照してください。
備考
GET_SELECT_INTERFACE_REQUEST_SIZE マクロを使用して、URB_FUNCTION_SELECT_INTERFACE URB のサイズを決定し、UsbBuildSelectInterfaceRequest ルーチンを使用して URB を書式設定できます。
USBD_INTERFACE_INFORMATION 構造体には、インターフェイスとその代替設定に関する情報が含まれています。
パイプUSBD_INTERFACE_INFORMATION のメンバーは、USBD_PIPE_INFORMATION 構造体の配列を指します。 配列には、インターフェイスのエンドポイントに関連付けられているパイプに関する情報が格納されます。 パイプの既定の設定 (最大パケット サイズなど) をオーバーライドできます。 最大パケット サイズを変更するには、Pipes[i].PipeFlags
でUSBD_PF_CHANGE_MAX_PACKET フラグを設定し、Pipes[i].MaximumPacketSize
で新しい値を指定します。
バス ドライバーは、URB_FUNCTION_SELECT_INTERFACE URB の処理を正常に完了した後、Pipes[i].PipeHandle
メンバー内の各パイプのハンドルの配列を返します。 クライアント ドライバーは、特定のパイプに I/O 要求を送信するパイプ ハンドルを格納できます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | usb.h (Usb.h を含む) |
関連項目
USB デバイス の構成