ユニバーサル シリアル バス (USB)

ユニバーサル シリアル バス (USB) は、ホットプラグ対応で拡張性のあるプラグ アンド プレイ シリアル インターフェイスを提供します。このインターフェイスによって、キーボード、マウス、ジョイスティック、プリンター、スキャナー、記憶装置、モデム、ビデオ会議用カメラなどの周辺機器を低コストの標準方式で接続できます。 PS/2、シリアル ポート、パラレル ポートなど、旧式ポートを使用する周辺機器については、すべて USB に移行することをお勧めします。

USB-IF は Special Interest Groups (SIGs) であり、公式の USB 仕様、テスト仕様、テスト ツールに準拠しています。

Windows オペレーティング システムは、公式の USB 仕様に準拠する USB ホスト コントローラー、ハブ、デバイス、システムをネイティブ サポートしています。 Windows からはプログラミング インターフェイスも提供されます。これを利用し、USB デバイスと通信するデバイス ドライバーアプリケーションを開発できます。

デバイス ビルダーのための USBドライバー開発者のための USBアプリ開発者のための USBUSB HCK 証明

Windows の USB

Windows 10:USB の新機能

Windows 10 の USB 関連の新機能と機能強化の概要。

USB に関する FAQ

USB スタックと USB でサポートされている機能についてドライバー開発者からよく寄せられている質問。

USB デバイスのための Microsoft OS 記述子

Windows では、Windows オペレーティング システムを実行しているシステムに接続されているときに列挙機能を改善する MS OS 記述子が定義されています

Microsoft が提供する USB ドライバー

Windows の USB デバイス側ドライバー

USB デバイスの共通関数ロジックを処理するためのドライバー セット。

Windows の USB ホスト側ドライバー

Microsoft からは、EHCI コントローラーと xHCI コントローラーに接続されているデバイスと相互運用するドライバーのコア スタックが提供されます。

USB-IF デバイス クラス ドライバー

Windows からは、USB-IF 認定のさまざまなデバイス クラス、オーディオ、大容量記憶装置などのインボックス デバイス クラス ドライバーが提供されます。

USB 汎用関数ドライバー - WinUSB

Windows からは、カスタム デバイスと複合デバイスの関数の関数ドライバーとして読み込まれる Winusb.sys が提供されます。

複合デバイスの USB 汎用親ドライバー - Usbccgp

複数の関数を使う USB ドライバーのための親ドライバー。 Usbccgp では、これらの関数のそれぞれに対して物理デバイス オブジェクト (PDO) が作成されます。 個々の PDO はそれぞれの USB 関数ドライバーによって管理されます。これは Winusb.sys ドライバーか USB デバイス クラス ドライバーになります。

USB ドライバーを開発するための WDF 拡張 Windows で USB デバイスをテストする

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 Dev-Center

Windows オペレーティング システムで動作する USB デバイスとドライバーを初めて開発する開発者からよく寄せられる質問に基づくその他のリソース。

USB 関連の動画

USB デバイスの UWP アプリ Windows 8 の USB 3.0 を理解する 優れた USB 3.0 デバイスを開発する Windows 8 の USB デバッグの革新技術 (パート I、II、& III)

学習向け USB ハードウェア

MUTT デバイス

MUTT デバイス、SuperMUTT デバイス、付随するソフトウェア パッケージは USB テストの HCK スイートに統合されています。 USB のコントローラー、デバイス、システムの開発周期において、特にストレス テストにおいて使用できる自動化されたテストを提供します。

OSR USB FX2 ラーニング キット

USB ドライバーを初めて開発する場合。 このキットは、このドキュメント セットに含まれている学習用 USB サンプルに最も適しています。 OSR オンライン ストアからラーニング キットを入手できます。

USB クライアント ドライバーを記述する (KMDF、UMDF)

USB ドライバー開発の概要を紹介します。 デバイスに USB ドライバーを提供するために最も適したモデルを選択するための情報を提供します。 このセクションには、Microsoft Visual Studio に付属する USB テンプレートを使用し、初めてのユーザーモードおよびカーネルモード USB ドライバーを記述する方法をついてのチュートリアルも含まれています。

USB クライアント ドライバー開発の概要

USB デバイス ドライバーのプログラミング参照

USB ホスト コントローラー ドライバーを記述する

仕様に準拠しない xHCI ホスト コントローラーを開発している場合、またはカスタムの非 xHCI ハードウェア (仮想ホスト コントローラーなど) を開発している場合、UCX と通信するホスト コントローラー ドライバーを記述できます。 たとえば、USB デバイスをサポートする無線ドックを検討してください。 PC は、トランスポートとして TCP 経由の USB を使用することで、無線ドック経由で USB デバイスと通信します。

USB ホスト コントローラー用 Windows ドライバーの開発

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 コントローラーと 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) が必要です。

USB デバイスとの対話、開始から終了まで

Windows.Devices.Usb

Windows デスクトップ アプリを記述する

アプリケーションが WinUSB 関数を呼び出し、USB デバイスと通信するしくみを説明します。

WinUSB アプリケーションを記述する

WinUSB 関数

一般的なプログラミング シナリオ

USB デバイスと通信する目的で、ドライバーまたはアプリが実行する一般的なタスクのリスト。 タスクごとに必要なプログラミング インターフェイスに関するクイック ヒントを取得します。

USB サンプル

USB の UWP アプリ サンプル

USB の Windows ドライバー サンプル

開発ツール

Windows 用のキットとツールのダウンロード