Windows 用 USB デバイス構築の概要

まとめ

USB デバイスビルダーのリソース

このセクションでは、USB 周辺機器の製造元へのリンクを提供します。

USB デバイスの列挙プロセス

USB スタックはデバイスを列挙する方法
Microsoft USB ドライバースタックで使用される列挙プロセスの詳細な説明。スタックがデバイスの存在を検出した時点から開始し、新しいデバイスが到着したことを PnP マネージャーに示します。

Windows 8 での USB 2.1、2.0、および1.1 デバイス列挙の変更
Windows 8 では、usb ドライバースタックで USB 2.1、2.0、および1.1 デバイスを列挙する方法に変更が加えられました。 これらの変更により、新しい USB 機能がサポートされ、デバイスの列挙パフォーマンスが向上します。 このような微妙な変更を認識し、デバイス/ファームウェアビルダーが列挙エラーの根本原因を簡単に判断できるように、投稿をお読みください。

Microsoft OS 記述子

USB デバイスは、デバイスとそのインターフェイスおよびエンドポイントのファームウェアに標準記述子を格納します。 さらに、デバイスはクラスおよびベンダー固有の記述子を格納できます。 ただし、これらの記述子に含めることができる情報の種類は限られています。 通常、Ihv は Windows Update または Cd などのメディアを使用して、ユーザーに画像、アイコン、カスタムドライバなどのさまざまなデバイス固有の情報を提供する必要があります。

IHV は、Microsoft OS 記述子を使用して、情報を個別に提供するのではなく、ファームウェアに格納することができます。 ウィンドウは、Microsoft OS 記述子を読み取って情報を取得し、それを使用してユーザーの操作を必要とせずにデバイスをインストールおよび構成します。 「 USB デバイス用の MICROSOFT OS 記述子」を参照してください。

Microsoft OS 1.0 記述子の仕様
このドキュメントでは、Microsoft OS 記述子について説明します。 これには、OS 文字列記述子、拡張プロパティ OS 機能記述子、および OS 機能記述子の形式の指定が含まれます。

Microsoft OS 2.0 記述子の仕様
このドキュメントでは、Microsoft OS 記述子のバージョン2.0 の実装について定義し、説明します。 Microsoft OS 2.0 記述子の目的は、バージョン1.0 の OS 記述子に関する制限事項と信頼性の問題に対処し、USB デバイスに対して新しい Windows 固有の機能を有効にすることです。

Microsoft OS 記述子を使用した関数ドライバーとしての Winusb.sys の読み込み
IHV は、互換性 ID を "WINUSB" として報告する特定の Microsoft オペレーティングシステム (OS) 機能記述子を定義できます。 これらの記述子により、Windows はカスタム INF ファイルを使用せずにデバイスの関数ドライバーとして Winusb.sys を読み込むことができます。 互換性のある ID を定義する方法の例については、「拡張互換 ID OS 機能記述子の仕様」の「例」を参照してください。 この仕様は、「 MICROSOFT OS 1.0 記述子のダウンロード」の仕様に含まれています。

コンテナー ID の設定

USB デバイス用のコンテナー ID
ユニバーサルシリアルバス (USB) デバイスのコンテナー Id が生成されるしくみについて説明します。

Windows における USB ContainerID
デバイスの製造元が Windows で正しく検出されるように多機能な USB デバイスをプログラミングするためのガイドライン。

USB デバイスのコンテナー ID を生成する方法
このブログの投稿では、デバイスがデバイス とプリンター のデバイスを適切に列挙して表示するためにコンテナー ID を報告する必要があることについて説明します。 複数の機能 (複合デバイス) またはコンポーネント (複合デバイス) をサポートするデバイスの場合、デバイスは各部分に対して同じ ID を報告する必要があります。 デバイスは、Microsoft OS の ContainerID 記述子で ID を報告する必要があります。

電源管理の実装

USB 3.0 ハードウェアでの電源管理のリンク
このドキュメントでは、ハードウェアベンダーと Oem が、リンク電源管理 (LPM) と選択的中断を組み合わせて使用して、USB デバイスの電源管理を実装するためのガイドラインを提供します。 U1 から U2 へのハードウェアの移行について説明し、USB コントローラー、ハブ、デバイスでの LPM 実装における一般的な落とし穴について説明します。

Demystifying の選択的な中断
このブログの投稿では、usb ドライバースタックで USB 3.0 デバイスの機能とセレクティブサスペンドがどのように処理されるかについて説明します。

デバッグと診断ツール

Windows USB イベント トレーシング
Windows イベントトレーシング (ETW) は、オペレーティングシステムによって提供される汎用的な高速トレース機能です。 ここでは、ツールをインストールする方法、トレースファイルを作成する方法、およびイベントを USB トレースファイルで分析する方法について説明します。

WPP ソフトウェア トレース
Windows ソフトウェアトレースプリプロセッサ (WPP) の既定の操作を使用して、ソフトウェアコンポーネント (トレースプロバイダー) の操作をトレースする方法。

USB 3.0 拡張機能 (usb3kd.dll)
これらのコマンドは、usb 3.0 スタック内の3つのドライバーによって管理されているデータ構造の情報を表示します。 usb 3.0 hub ドライバー、USB ホストコントローラー拡張機能ドライバー、および USB 3.0 ホストコントローラードライバー。

USB 2.0 拡張機能 (usb2kd.dll)
これらのコマンドは、usb 2.0 スタックのドライバーによって管理されているデータ構造の情報を表示します。 usb 2.0 hub ドライバーおよび USB 2.0 ホストコントローラードライバー。

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