次の方法で共有


USB クライアント ドライバーでの USB データ転送送信の概要

このセクションの記事では、I/O 要求の USB パイプと URB に関する情報を提供し、クライアント ドライバーがデバイス ドライバー インターフェイス (DDI) を使用して USB デバイスとの間でデータを転送する方法について説明します。

転送は、ホスト コントローラーと USB デバイス間でデータが移動されるたびに行われます。 一般に、USB 転送は、制御転送とデータ転送に大きく分類できます。 すべての USB デバイスは制御転送をサポートする必要があり、データ転送のエンドポイントをサポートできます。 転送の各種類は、USB エンドポイントの種類 (デバイス内のバッファー) に関連付けられます。 制御転送はデフォルトのエンドポイントに関連付けられ、データ転送は単方向エンドポイントを使用します。 データ転送の種類では、割り込み、バルク、等時性のエンドポイントが使用されます。 USB ドライバー スタックは、デバイスでサポートされている各エンドポイントのパイプと呼ばれるコミュニケーション チャネルを作成します。 パイプの 1 つの端がデバイスのエンドポイントです。 パイプのもう一方の端は常にホスト コントローラーです。

I/O 要求をデバイスに送信する前に、クライアント ドライバーは、構成、インターフェイス、エンドポイント、ベンダー、およびクラス固有の記述子に関する情報を USB デバイスから取得する必要があります。 さらに、ドライバーもデバイスを構成する必要があります。 デバイス構成には、構成の選択や各インターフェイス内の代替設定などのタスクが含まれます。 各代替設定では、データ転送に使用できる 1 つ以上の USB エンドポイントを指定できます。

デバイス構成の詳細については、「USB デバイスの構成を選択する方法」および「USB インターフェイスで代替設定を選択する方法」を参照してください。

クライアント ドライバーがデバイスを構成した後、ドライバーは、現在選択されている代替設定の各エンドポイントに対して USB ドライバー スタックによって作成されたパイプ ハンドルにアクセスできるようになります。 データをエンドポイントに転送するために、クライアント ドライバーは、要求の種類に固有の URB をフォーマットして要求を作成します。

このセクションの内容

記事 説明
USB コントロール転送の送信方法 この記事では、コントロール転送の構造について説明し、クライアント ドライバーがデバイスに制御要求を送信する方法を示しています。
USB パイプの列挙方法 この記事では、USB パイプの概要を示し、USB クライアント ドライバーが USB ドライバー スタックからパイプ ハンドルを取得する手順について説明します。
継続的リーダーを使用して USB パイプからデータを読み取る方法 この記事では、WDF 提供の継続的リーダー オブジェクトについて説明しています。 この記事の手順では、オブジェクトを構成し、そのオブジェクトを使用して USB パイプからデータを読み取る方法について、ステップ バイ ステップで説明しています。
USB バルク転送要求の送信方法 この記事では、USB バルク転送の概要を示しています。 また、クライアント ドライバーがデバイスからバルク データを送受信する方法について、ステップ バイ ステップで説明しています。
USB バルク エンドポイントにおける静的ストリームのオープン/クローズ方法 この記事では、静的ストリーム機能について説明し、USB クライアント ドライバーが USB 3.0 デバイスのバルク エンドポイントでストリームを開いたり閉じたりする方法を示しています。
USB アイソクロナス エンドポイントへのデータの転送方法 この記事では、クライアント ドライバーが USB デバイス内の等時性エンドポイントとの間でデータを転送する USB 要求ブロック (URB) を構築する方法について説明します。
チェーン化された MDL の送信方法 この記事では、USB ドライバー スタックのチェーン MDL 機能と、クライアント ドライバーが送信バッファーを MDL 構造体のチェーンとして送信する方法について説明しています。
USB パイプ エラーからの回復方法 この記事では、USB パイプへのデータ転送が失敗した場合に試すことができる手順について説明しています。 この記事で説明しているメカニズムでは、バルク、割り込み、アイソクロナス パイプでの中止、リセット、サイクル ポート操作を取り上げています。
USB 帯域幅の割り当て このセクションでは、USB 帯域幅の慎重な管理に関するガイダンスを提供します。