ユニバーサル シリアル バス (USB)
ユニバーサル シリアル バス (USB) は、拡張可能なプラグ アンド プレイシリアル インターフェイスを提供し、周辺機器の標準の低コスト接続を保証します。 USB デバイスには、キーボード、マウス、ジョイスティック、プリンター、スキャナー、記憶装置、モデム、ビデオ会議カメラなどが含まれます。
USB-IF は Special Interest Groups (SIGs) であり、公式の USB 仕様、テスト仕様、テスト ツールに準拠しています。
Windows オペレーティング システムは、公式の USB 仕様に準拠する USB ホスト コントローラー、ハブ、デバイス、システムをネイティブ サポートしています。 Windows からはプログラミング インターフェイスも提供されます。これを利用し、USB デバイスと通信するデバイス ドライバーやアプリケーションを開発できます。
Windows の USB
USB Type-C コネクタの Windows サポート: USB Type-C コネクタを使用して Windows システムを構築する OEM 向け。
ユニバーサル シリアル バス 4 (USB4™): OEM、IHV、シリコン ベンダーが USB4 接続マネージャーに関する情報を USB4 をサポートする Windows システムを起動し、デバッグと起動手順を容易にします。
USB FAQ: USB スタックと USB でサポートされている機能について、ドライバー開発者からよく寄せられる質問。
USB デバイスの Microsoft OS 記述子: Windows では、Windows オペレーティング システムを実行しているシステムに接続するときに、より適切な列挙を可能にする MS OS 記述子が定義されています。
開発ツール
USB サンプル
Windows 用の USB ドライバーまたはアプリを作成する
USB ドライバー開発の概要を紹介します。 デバイスに USB ドライバーを提供するために最も適したモデルを選択するための情報を提供します。
USB クライアント ドライバーを記述する (KMDF、UMDF)
このセクションには、Microsoft Visual Studio に含まれる USB テンプレートを使用して、最初のユーザー モードとカーネル モードの USB ドライバーを記述する方法に関するチュートリアルが含まれています。
USB ホスト コントローラー ドライバーを記述する
仕様に準拠していない xHCI ホスト コントローラーを開発している場合、またはカスタムの非 xHCI ハードウェア (仮想ホスト コントローラーなど) を開発している場合は、UCX と通信するホスト コントローラー ドライバーを記述できます。 たとえば、USB デバイスをサポートする無線ドックを検討してください。 PC は、トランスポートとして TCP 経由の USB を使用することで、無線ドック経由で USB デバイスと通信します。
USB ホスト コントローラー (UCX) 参照
USB デバイスの関数コントローラー ドライバーを記述する
ホストによってデバイスに送信される 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 および Synopsis コントローラー用のインボックス クライアント ドライバーが含まれています。 その他のコントローラーの場合、デュアルロール クラス拡張 (UrsCx) とそのクライアント ドライバーが互いに通信し、デュアルロール コントローラーのロール切り替え機能を処理できるようにする一連のプログラミング インターフェイスが Microsoft から提供されます。
この機能の詳細については、以下を参照してください。
USB デュアル ロール ドライバー スタック アーキテクチャ
USB デュアルロール コントローラー ドライバーのプログラミング参照
エミュレートされたデバイスの USB ドライバーを記述する
エミュレートされたユニバーサル シリアル バス (USB) ホスト コントローラー ドライバーと接続された仮想 USB デバイスを開発できます。 いずれのコンポーネントも、Microsoft 提供の USB デバイス エミュレーション クラス拡張 (UdeCx) と通信する 1 つの KMDF ドライバーに統合されます。
列挙された USB デバイス (UDE) 用 Windows ドライバーの開発
エミュレートされた USB ホスト コントローラー ドライバーのプログラミング参照
USB ドライバーを開発するための WDF 拡張
- USB コネクタ マネージャー クラス拡張 (UcmCx) 参照
- USB ホスト コントローラー (UCX) 参照
- USB 関数クラス拡張 (UFX) 参照
UWP アプリを記述する
USB デバイスと話し合い、開始して完了する: UWP アプリでの USB 機能の実装に関する詳細な手順を示します。 USB デバイス用にこのようなアプリを作成するには、Visual Studio と Microsoft Windows Software Development Kit (SDK) が必要です。
Windows.Devices.Usb: UWP 名前空間プログラミング リファレンス。
Windows デスクトップ アプリを記述する
WinUSB アプリケーションを記述する: アプリケーションが WinUSB Functions を呼び出して USB デバイスと通信する方法について説明します。
WinUSB 関数
一般的なプログラミング シナリオ: ドライバーまたはアプリが USB デバイスと通信するために実行する一般的なタスクの一覧。 タスクごとに必要なプログラミング インターフェイスに関するクイック ヒントを取得します。
Windows で USB デバイスをテストする
Microsoft USB テスト ツール (MUTT) デバイスの概要
USB ハードウェアまたはソフトウェアをテストするためのツールに関する情報を取得し、操作やその他のシステム イベントの足跡を記録し、クライアント ドライバーまたはアプリケーションによって送信された要求に USB ドライバー スタックがどのように応答するのかを観察します。
ハードウェア認証キットでテストの概要を読みます。ハードウェアのベンダーやデバイスのメーカーは自社の USB デバイスやホスト コントローラーを Windows ハードウェア認定のために提出するとき、このキットを利用して準備します。
ユニバーサル シリアル バス 4 (USB4™)
ユニバーサル シリアル バス 4 (USB4™): OEM、IHV、シリコン ベンダーが USB4 接続マネージャーに関する情報を USB4 をサポートする Windows システムを起動し、デバッグと起動手順を容易にします。
Windows の USB4 接続マネージャーの概要: USB4 ドメインの接続マネージャーは、USB4 ドメインの列挙、構成、および管理を担当します。
ユニバーサル シリアル バス 4 (USB4™) の設計の詳細と一般的な要件: 高レベルの設計とユーザー エクスペリエンスの要件。
ユニバーサル シリアル バス 4 (USB4™) が必要なテスト: HLK 要件は、USB4 機能セットの完全なエンドツーエンド機能テスト カバレッジを提供するようには設計されていません。 重要な使用シナリオについて、徹底した検証を行うことをお勧めします。
USB のためのその他のリソース
公式 USB 仕様: USB プロトコルの完全な技術的な詳細を提供します。
Microsoft Windows USB Core チームのブログ: Microsoft USB チームが作成した投稿を確認してください。 このブログでは、Windows PC に搭載されたさまざまな USB ホスト コントローラーや USB ハブと連動する Windows USB ドライバー スタックを中心に取り上げています。 USB クライアント ドライバー開発者と USB ハードウェア デザイナーがドライバー スタックの実装を理解し、一般的な問題を解決し、トレースとログ ファイルを収集するためのツールを使用する方法を説明するのに役立つリソースです。
OSR Online Lists - ntdev: カーネル モード ドライバー開発者向けに OSR Online によって管理されるディスカッション リスト。
Windows ハードウェア デベロッパー センター: Windows オペレーティング システムで動作する USB デバイスとドライバーの開発を初めて使用する開発者からよく寄せられる質問に基づくその他のリソース。
学習向け USB ハードウェア
MUTT デバイス: MUTT および SuperMUTT デバイスと付属のソフトウェア パッケージは、USB テストの HCK スイートに統合されています。 USB のコントローラー、デバイス、システムの開発周期において、特にストレス テストにおいて使用できる自動化されたテストを提供します。
OSR USB FX2 ラーニング キット: USB ドライバー開発を初めて使用する場合。 このキットは、このドキュメント セットに含まれている学習用 USB サンプルに最も適しています。 OSR オンライン ストアからラーニング キットを入手できます。
Microsoft が提供する USB ドライバーについて説明します
Windows の USB デバイス側ドライバー: USB 関数スタックのアーキテクチャについて説明します。
Windows の USB ホスト側ドライバー: ユニバーサル シリアル バス (USB) ドライバー スタック アーキテクチャの概要について説明します。 Microsoft からは、EHCI コントローラーと xHCI コントローラーに接続されているデバイスと相互運用するドライバーのコア スタックが提供されます。
USB-IF デバイス クラス ドライバー: サポートされている USB デバイス クラス用の Microsoft が提供するドライバーの一覧を示します。 Windows からは、USB-IF 認定のさまざまなデバイス クラス、オーディオ、大容量記憶装置などのインボックス デバイス クラス ドライバーが提供されます。
USB 汎用関数ドライバー -WinUSB: WinUSB は、Windows Vista 以降のすべてのバージョンの Windows に含まれている USB デバイス用の汎用ドライバーです。 Windows からは、カスタム デバイスと複合デバイスの関数の関数ドライバーとして読み込まれる Winusb.sys が提供されます。
複合デバイスの USB 汎用親ドライバー – Usbccgp: 複数の機能を持つ USB デバイスの親ドライバー。 Usbccgp では、これらの関数のそれぞれに対して物理デバイス オブジェクト (PDO) が作成されます。 これらの個々の PDO は、それぞれの USB ファンクション ドライバーを管理します。これは、Winusb.sys ドライバーまたは USB デバイス クラス ドライバーです。
フィードバック
https://aka.ms/ContentUserFeedback。
近日公開予定: 2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub イシューを段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、以下を参照してください:フィードバックの送信と表示