_URB_SELECT_CONFIGURATION 構造体は、USB デバイスの構成を選択するためにクライアント ドライバーによって使用されます。
構文
struct _URB_SELECT_CONFIGURATION {
struct _URB_HEADER Hdr;
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
USBD_INTERFACE_INFORMATION Interface;
};
メンバーズ
Hdr
URB ヘッダー情報を指定する _URB_HEADER 構造体へのポインター。 hdr.Function URB_FUNCTION_SELECT_CONFIGURATIONする必要があり、Hdr.Length URB 全体のサイズにする必要があります。 ドライバーは、usbdlib.h で定義されているGET_SELECT_CONFIGURATION_REQUEST_SIZE マクロを使用して URB のサイズを取得できます。
ConfigurationDescriptor
デバイスで使用する構成を識別する初期化された USB 構成記述子へのポインター。 このメンバーが NULL 場合、デバイスは未構成の状態に設定されます。
ConfigurationHandle
ホスト コントローラー ドライバーからのリターン時にこの構成にアクセスするために使用されるハンドルが含まれています。 USB クライアント ドライバーは、このメンバーを不透明として扱う必要があります。
Interface
選択されている構成でサポートされるインターフェイスを記述する、USBD_INTERFACE_INFORMATION 構造体の可変長配列を指定します。
要求がホスト コントローラー ドライバーに送信される前に、ドライバーは、そのインターフェイスの USBD_INTERFACE_INFORMATION 構造体のメンバーを設定することによって、この配列に含まれるインターフェイスの 1 つ以上の代替設定を選択できます。
ホスト コントローラー ドライバーからのリターン時に、このメンバーには、そのインターフェイス内のエンドポイントの機能と形式を記述するデータを含む USBD_INTERFACE_INFORMATION 構造体が含まれます。
備考
URB_FUNCTION_SELECT_CONFIGURATION URB は、_URB_SELECT_CONFIGURATION 構造体の後に、USBD_INTERFACE_INFORMATION 構造体の可変長配列のシーケンスで構成され、配列内の各要素は、構成内の一意のインターフェイス番号ごとに構成されます。 クライアント ドライバーは、選択したインターフェイス内のエンドポイントごとに 1 つの USBD_PIPE_INFORMATION 構造体を格納するのに十分なメモリを割り当てる必要があります。
ドライバーは、USBD_CREATECONFIGURATIONREQUESTEX サービス ルーチンを使用して URB を割り当てることができます。
この構造体の一部であるが、ここで説明していない他のメンバーは、不透明として扱われ、システム使用のために予約されていると見なされる必要があります。
必要条件
要件 | 価値 |
---|---|
ヘッダー | usb.h (Usb.h を含む) |