Windows 用 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 記述子を使用してファームウェアに情報を保存できます。 Windows は 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 記述子の目的は、OS 記述子のバージョン 1.0 に関する制限事項と信頼性の問題に対処し、USB デバイスに対して Windows 固有の新しい機能を有効にすることです。

  • Microsoft OS 記述子を使用して Winusb.sys をファンクション ドライバーとして読み込む

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

コンテナー ID の設定

  • USB デバイス用のコンテナー ID

    ユニバーサル シリアル バス (USB) デバイスのコンテナー ID を生成する方法について説明します。

  • Windows における USB ContainerID

    多機能 USB デバイスを Windows で正しく検出できるようにプログラムするための、デバイスの製造元向けガイドライン。

  • USB デバイスのコンテナー ID を生成する方法

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

電源管理の実装

  • USB 3.0 ハードウェアでのリンク電源管理

    このドキュメントでは、ハードウェア ベンダーおよび OEM がリンク電源管理 (LPM) と選択的サスペンドを併用して USB デバイスの電源管理を実装するためのガイドラインを提供します。 ハードウェアの U1 から U2 への移行について説明し、USB コントローラー、ハブ、デバイスでの LPM 実装における一般的な注意点を紹介します。

  • 選択的サスペンドの解説

    このブログ投稿では、USB ドライバー スタックで USB 3.0 デバイスの機能と選択的サスペンドがどのように処理されるのかを説明します。

デバッグおよび診断ツール

  • Windows の USB イベント トレーシング

    Event Tracing for Windows (ETW) は、オペレーティング システムによって提供される汎用的な高速トレース機能です。 これには、ツールのインストール方法、トレース ファイルの作成方法、USB トレース ファイル内のイベントの分析方法に関する情報が含まれています。

  • WPP ソフトウェア トレース

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

  • USB 3.0 拡張機能 (usb3kd.dll)

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

  • USB 2.0 拡張機能 (usb2kd.dll)

    これらのコマンドは、USB 2.0 スタック内のドライバー (USB 2.0 ハブ ドライバーおよび USB 2.0 ホスト コントローラー ドライバー) によって管理されるデータ構造からの情報を表示します。