次の方法で共有


WinUSB の概要 (開発者向け)

ドライバー開発者は、WinUSB (Windows USB) を理解することで、特に USB デバイスを操作する場合に開発プロセスを大幅に効率化できます。 WinUSB は、カスタム ドライバーを記述する必要なく USB デバイスと通信できる Windows に含まれる汎用ドライバーです。 これにより、時間を節約し、複雑さを軽減し、さまざまな Windows バージョン間の互換性を確保できます。

WinUSB を使用する主な利点

  1. 簡略化された開発:

    • 使いやすさ: WinUSB は、USB 通信に関連する複雑さの多くを抽象化し、USB デバイスとの対話を容易にします。
    • カスタム ドライバーは必要ありません:多くの USB デバイスでは、WinUSB を直接使用できるため、カスタム ドライバーを作成して維持する必要はありません。
  2. クロスプラットフォーム互換性:

    • 標準化されたインターフェイス: WinUSB は USB 通信用の標準化されたインターフェイスを提供します。これは、さまざまな Windows バージョン間の互換性を確保するために役立ちます。
  3. 時間とコスト効率:

    • 開発時間の短縮: WinUSB を使用すると、USB ドライバーの開発とテストに必要な時間を大幅に短縮できます。
    • メンテナンス コストの削減: WinUSB は Microsoft によって保守されているため、更新とサポートに依存できるため、長期的なメンテナンス コストを削減できます。
  4. USB 機能へのアクセス:

    • 完全な USB 機能: WinUSB は、一括転送、制御転送、割り込み転送、等時転送など、幅広い USB 機能をサポートしています。

WinUSB で実現できること

  1. デバイス通信:

    • データ転送: 一括転送、制御転送、割り込み転送、等時転送を使用して、USB デバイスとの間でデータを送受信します。
    • 制御要求: 制御要求を送信して、デバイスを構成するか、情報を取得します。
  2. デバイス構成:

    • 構成の設定: 構成、インターフェイス、および代替設定を選択して、USB デバイスを構成します。
    • エンドポイント管理: データ転送のエンドポイントを管理します。
  3. デバイス列挙:

    • デバイス識別: システムに接続されている USB デバイスを列挙して識別します。
    • 記述子の取得: デバイス記述子、構成記述子、インターフェイス記述子、およびエンドポイント記述子を取得します。
  4. カスタム アプリケーション:

    • ユーザー モード アプリケーション: WinUSB API を使用して USB デバイスと通信するユーザー モード アプリケーションを開発します。
    • ファームウェアの更新: USB デバイスのファームウェア更新メカニズムを実装します。
  5. テストとデバッグ:

    • プロトタイプ作成: USB デバイス通信をすばやくプロトタイプ化してハードウェア機能をテストします。
    • デバッグ: WinUSB を使用して、ホストと USB デバイス間の通信の問題をデバッグします。

WinUSB のコンポーネント

WinUSB には以下が含まれます。

  • カーネル モード ドライバー (winusb.sys)
  • winusb.h で説明されている WinUSB 関数を公開するユーザー モードダイナミック リンク ライブラリ (winusb.dll)。 これらの関数を使用して、ユーザーモード ソフトウェアで USB デバイスを管理できます。

既定では、winusb.sysは上位フィルター ドライバーとしてデバイスのカーネル モード スタックにインストールされます。 アプリはデバイスの UMDF ファンクション ドライバーと通信して、読み取り、書き込み、またはデバイス I/O 制御要求を発行します。 この構成では、winusb.sysはデバイス スタックのプラグ アンド プレイおよび電源所有者として機能します。 USB デバイスのファンクション ドライバーとしてwinusb.sysをインストールすることもできます。

WinUSB の概要

このセクションには、次の情報が含まれます。

  • デバイスに適したドライバーを選択する
  • WinUSB を使用した USB デバイスとの通信
  • USB デバイスのファンクション ドライバーとしてwinusb.sysをインストールする

アプリと USB デバイスの通信方法を示す詳細なコード例もあります。

Note

WinUSB では、Windows 8 以降のアイソクロナス転送がサポートされています。