USB クライアント ドライバー開発の最初の手順

ここでは、USB ドライバー開発の概念とツールについて説明します。 このセクションは、Microsoft が用のインボックスドライバーを提供していない USB デバイスのドライバーを実装するドライバー開発の新機能に適用されます。 このドキュメントでは、これらのドライバーを USB クライアントドライバー と呼びます。 このセクションのトピックでは、高レベルの USB の概念について説明し、USB クライアントドライバーの一般的なタスクを実行するための詳細な手順を示します。 これらの概念の詳細については、 「usb の仕様」を参照してください。

ドライバー開発者は、C++ プログラミング言語のコーディングエクスペリエンスを備え、 関数ポインターコールバック関数、および イベントハンドラー の概念を理解している必要があります。 User-Mode ドライバーフレームワークに基づいてドライバーを記述する場合は、開発者が C++ および COM について理解している必要があります。

USB クライアントドライバー開発者向けのラーニングパス

  1. USB 仕様 3.2を読み取ります。

    • アーキテクチャの業界仕様とさまざまなコンポーネント (デバイス、ホストコントローラー、ハブ) について説明します。 データフローモデル、ホストとデバイスが相互に通信する方法、およびデバイスで想定される要求の形式を理解することが重要です。
  2. テスト用の USB デバイスを入手します。

    • USB デバイスとそのハードウェア仕様を用意します。 この仕様では、デバイスの機能とサポートされているベンダーのコマンドについて説明します。 仕様を使用して、デバイスドライバーの機能と、関連する設計上の決定を決定します。

    • USB ドライバーの開発を初めて行う場合は、 OSR USB FX2 learning kit を用意してください。 このキットは、このドキュメント セットに含まれている学習用 USB サンプルに最も適しています。

    • Microsoft USB Test Tool (MUTT) デバイスがあること。 MUTT ハードウェアは、 Jjg テクノロジから購入できます。 デバイスにインストールされているファームウェアがインストールされていません。 ファームウェアをインストールするには、 MUTT ソフトウェアパッケージをダウンロードします。 詳細については、パッケージに含まれているドキュメントを参照してください。

  3. Usb デバイスレイアウトと関連するusb 記述子を調べます。

    • 構成記述子、サポートされている各代替設定のインターフェイス記述子、およびエンドポイント記述子を読み取って、デバイスの機能を記述します。 Usbviewを使用すると、開発者はすべての usb コントローラーと接続されている usb デバイスを参照し、デバイスの構成を調べることができます。
  4. USB クライアントドライバーを開発するためのドライバーモデルを選択する

    • ドライバーがカスタムドライバーである必要があるかどうか、またはターゲットデバイスの設計に基づいて、Microsoft 提供のドライバーのいずれかを使用するかどうかを判断します。 最適なドライバーモデルを選択し、各モデルでサポートされる機能について説明します。
  5. Microsoft 提供の USB ドライバースタックとドライバー開発の概念を確認します。

  6. 開発およびデバッグ環境を準備します。

  7. 最初のドライバーを作成します。

  8. USB 制御転送要求を送信して、ドライバーを拡張します。

    • 標準のコントロール要求とベンダーコマンドをデバイスに送信します。 詳細については、「 USB 制御転送を送信する方法」を参照してください。
  9. WDF USB i/o ターゲットオブジェクトを使用して usb データ転送を実行するようにドライバーを拡張します。

USB のコミュニティリソース

Microsoft WINDOWS USB Core チームブログ Microsoft USB チームによって作成された投稿を確認してください。 このブログでは、Windows PC に搭載されたさまざまな USB ホスト コントローラーや USB ハブと連動する Windows USB ドライバー スタックを中心に取り上げています。 USB クライアント ドライバーの開発者や USB ハードウェアのデザイナーがドライバー スタック実装を理解し、一般的な問題を解決し、ツールを利用してトレースとログ ファイルを集める方法を説明する際に役立つリソース。

OSR オンラインリスト
カーネルモード ドライバーの開発者のための OSR オンラインによって管理されるディスカッション リスト。

ハードウェア開発のための Windows Dev-Center

Windows Driver kitでは、Windowsハードウェアラボキットを使用して、製品の信頼性が高く、windows と互換性があることを確認します。 windowsドライバーのサンプルに関するページを参照してください。

ユニバーサルシリアルバス (USB) ドライバー
USB デバイスの UMDF ドライバーで USB セレクティブサスペンドとシステムウェイクを有効にする方法
USB ドライバー開発ガイド