ユニバーサル シリアル バス (USB)
ユニバーサル シリアル バス (USB) は、ホットプラグ対応で拡張性のあるプラグ アンド プレイ シリアル インターフェイスを提供します。このインターフェイスによって、キーボード、マウス、ジョイスティック、プリンター、スキャナー、記憶装置、モデム、ビデオ会議用カメラなどの周辺機器を低コストの標準方式で接続できます。 PS/2、シリアル ポート、パラレル ポートなど、旧式ポートを使用する周辺機器については、すべて USB に移行することをお勧めします。
USB-IF は Special Interest Groups (SIGs) であり、公式の USB 仕様、テスト仕様、テスト ツールに準拠しています。
Windows オペレーティング システムは、公式の USB 仕様に準拠する USB ホスト コントローラー、ハブ、デバイス、システムをネイティブ サポートしています。 Windows からはプログラミング インターフェイスも提供されます。これを利用し、USB デバイスと通信するデバイス ドライバーやアプリケーションを開発できます。
Windows の USB
Windows 10:USB の新機能
Windows 10 の USB 関連の新機能と機能強化の概要。 USB に関する FAQUSB スタックと USB でサポートされている機能についてドライバー開発者からよく寄せられている質問。 USB デバイスのための Microsoft OS 記述子Windows では、Windows オペレーティング システムを実行しているシステムに接続されているときに列挙機能を改善する MS OS 記述子が定義されています Microsoft が提供する USB ドライバー Windows の USB デバイス側ドライバーUSB デバイスの共通関数ロジックを処理するためのドライバー セット。 Windows の USB ホスト側ドライバーMicrosoft からは、EHCI コントローラーと xHCI コントローラーに接続されているデバイスと相互運用するドライバーのコア スタックが提供されます。 USB-IF デバイス クラス ドライバーWindows からは、USB-IF 認定のさまざまなデバイス クラス、オーディオ、大容量記憶装置などのインボックス デバイス クラス ドライバーが提供されます。 USB 汎用関数ドライバー - WinUSBWindows からは、カスタム デバイスと複合デバイスの関数の関数ドライバーとして読み込まれる Winusb.sys が提供されます。 複合デバイスの USB 汎用親ドライバー - Usbccgp複数の関数を使う USB ドライバーのための親ドライバー。 Usbccgp では、これらの関数のそれぞれに対して物理デバイス オブジェクト (PDO) が作成されます。 個々の PDO はそれぞれの USB 関数ドライバーによって管理されます。これは Winusb.sys ドライバーか USB デバイス クラス ドライバーになります。 USB ドライバーを開発するための WDF 拡張
Microsoft USB テスト ツール (MUTT) デバイスの概要 USB ハードウェアまたはソフトウェアをテストするためのツールに関する情報を取得し、操作やその他のシステム イベントの足跡を記録し、クライアント ドライバーまたはアプリケーションによって送信された要求に USB ドライバー スタックがどのように応答するのかを観察します。 ハードウェア認証キットでテストの概要を読みます。ハードウェアのベンダーやデバイスのメーカーは自社の USB デバイスやホスト コントローラーを Windows ハードウェア認定のために提出するとき、このキットを利用して準備します。 USB のためのその他のリソース 公式の USB 仕様USB プロトコルの技術的な詳細がすべて含まれています。 Microsoft Windows USB コア チーム ブログMicrosoft USB チームが記述した投稿をご覧ください。 このブログでは、Windows PC に搭載されたさまざまな USB ホスト コントローラーや USB ハブと連動する Windows USB ドライバー スタックを中心に取り上げています。 USB クライアント ドライバーの開発者や USB ハードウェアのデザイナーがドライバー スタック実装を理解し、一般的な問題を解決し、ツールを利用してトレースとログ ファイルを集める方法を説明する際に役立つリソース。 OSR オンライン リスト - ntdevカーネルモード ドライバーの開発者のための OSR オンラインによって管理されるディスカッション リスト。 Windows ハードウェア デベロッパー センターWindows オペレーティング システムで動作する USB デバイスとドライバーを初めて開発する開発者からよく寄せられる質問に基づくその他のリソース。 USB 関連の動画 学習向け USB ハードウェア MUTT デバイスMUTT デバイス、SuperMUTT デバイス、付随するソフトウェア パッケージは USB テストの HCK スイートに統合されています。 USB のコントローラー、デバイス、システムの開発周期において、特にストレス テストにおいて使用できる自動化されたテストを提供します。 OSR USB FX2 ラーニング キットUSB ドライバーを初めて開発する場合。 このキットは、このドキュメント セットに含まれている学習用 USB サンプルに最も適しています。 OSR オンライン ストアからラーニング キットを入手できます。 |
USB クライアント ドライバーを記述する (KMDF、UMDF)
USB ドライバー開発の概要を紹介します。 デバイスに USB ドライバーを提供するために最も適したモデルを選択するための情報を提供します。 このセクションには、Microsoft Visual Studio に付属する USB テンプレートを使用し、初めてのユーザーモードおよびカーネルモード USB ドライバーを記述する方法をついてのチュートリアルも含まれています。 USB ホスト コントローラー ドライバーを記述する仕様に準拠しない xHCI ホスト コントローラーを開発している場合、またはカスタムの非 xHCI ハードウェア (仮想ホスト コントローラーなど) を開発している場合、UCX と通信するホスト コントローラー ドライバーを記述できます。 たとえば、USB デバイスをサポートする無線ドックを検討してください。 PC は、トランスポートとして TCP 経由の USB を使用することで、無線ドック経由で USB デバイスと通信します。 USB ホスト コントローラー用 Windows ドライバーの開発
ホストによってデバイスに送信される USB データ転送とコマンドをすべて処理するコントローラー ドライバーを開発できます。 このドライバーは、Microsoft 提供の USB 関数コントローラー拡張 (UFX) と通信します。 USB 機能コントローラー用 Windows ドライバーの開発 USB 関数クラス拡張 (UFX) 参照 USB Type-C コネクタ ドライバーを記述するWindows 10 には、新しい USB コネクタのサポートが導入されています。USB Type-C。 Microsoft 提供のクラス拡張モジュールと通信するコネクタのドライバーを記述できます。UcmCx は、どのポートで Type-C をサポートするか、どのポートで補助電源を与えるかなど、Type-C コネクタに関連するシナリオに対応します。 USB Type-C コネクタ用 Windows ドライバーの開発 USB コネクタ マネージャー クラス拡張 (UcmCx) 参照 USB デュアルロール コントローラー ドライバーを記述するWindows 10 は USB デュアルロール コントローラー対応になりました。 Windows には、ChipIdea コントローラーと Synopsys コントローラーのためのインボックス クライアント ドライバーが含まれています。 その他のコントローラーの場合、デュアルロール クラス拡張 (UrsCx) とそのクライアント ドライバーが互いに通信し、デュアルロール コントローラーのロール切り替え機能を処理できるようにする一連のプログラミング インターフェイスが Microsoft から提供されます。 この機能の詳細については、以下を参照してください。 USB デュアル ロール ドライバー スタック アーキテクチャ USB デュアルロール コントローラー ドライバーのプログラミング参照 エミュレートされたデバイスの USB ドライバーを記述するWindows 10 では、エミュレートされたデバイスのサポートが導入されました。 エミュレートされた Universal Serial Bus (USB) ホスト コントローラー ドライバーと接続された仮想 USB デバイスを開発できるようになりました。 いずれのコンポーネントも、Microsoft 提供の USB デバイス エミュレーション クラス拡張 (UdeCx) と通信する 1 つの KMDF ドライバーに統合されます。 列挙された USB デバイス (UDE) 用 Windows ドライバーの開発 エミュレートされた USB ホスト コントローラー ドライバーのプログラミング参照 UWP アプリを記述するUWP アプリで USB 機能を実装するための段階的手順を提供します。 USB デバイスにそのようなアプリを記述するには、Visual Studio と Microsoft Windows Software Development Kit (SDK) が必要です。 Windows デスクトップ アプリを記述するアプリケーションが WinUSB 関数を呼び出し、USB デバイスと通信するしくみを説明します。 WinUSB 関数 一般的なプログラミング シナリオUSB デバイスと通信する目的で、ドライバーまたはアプリが実行する一般的なタスクのリスト。 タスクごとに必要なプログラミング インターフェイスに関するクイック ヒントを取得します。 USB サンプル 開発ツール Windows 用のキットとツールのダウンロード |