次の方法で共有


アーキテクチャ: USB ホスト コントローラー拡張機能 (UCX)

このセクションでは、ホスト ドライバー開発の概要とタスクについて説明します。 このセクションは、Microsoft が提供する USB ホスト コントローラー拡張機能ドライバー (Ucx01000.sys) と通信する新しいホスト コントローラー ドライバーを作成する場合に適用されます。

Windows の USB ホスト側ドライバーに示されている図の変更されたバージョンを次に示します。 このバージョンでは、ホスト コントローラー ドライバーの開発には関係のない USB クライアント ドライバーレイヤーの詳細が非表示になります。

ucx アーキテクチャ。

上の図では、

  • USB ハブ ドライバー (Usbhub3.sys) は KMDF ドライバーです。 ハブ ドライバーは、USB ハブとそのポートの管理、USB デバイスとそのダウンストリーム ポートに接続できるその他のハブの物理デバイス オブジェクト (PDO) の列挙と作成を担当します。
  • USB ホスト コントローラー拡張機能 (Ucx01000.sys) は、スタック内の上記のハブ ドライバーに対する抽象化レイヤーであり、基になるホスト コントローラー ドライバーに要求をキューするための一般的なメカニズムを提供します。
  • USB ホスト コントローラー ドライバーは 、ハードウェアを管理します。 Usbxhci.sys は、特に xHCI 仕様に準拠した USB コントローラー ハードウェアを対象とする、Microsoft によって提供されるそのようなドライバーの 1 つです。 独立したハードウェア開発者が受信トレイ Usbxhci.sysを使用するのではなく、独自のホスト コントローラー ドライバーを記述することが必要な場合があります。 たとえば、仕様に完全に準拠していないため、Usbxhci.sys または非 XHCI ハードウェア (USB over TCP 接続など) を使用できない XHCI ハードウェアの場合です。

UCX とホスト コントローラー ドライバーの間で行われる双方向通信は、 USB ホスト コントローラー拡張機能 (UCX) プログラミング インターフェイスを使用して行われます。 各ドライバーは、ドライバーのコンパイル時に、Microsoft が提供するスタブ ライブラリ (Ucx01000.lib) のエントリ ポイントに静的にリンクします。

ホスト コントローラー ドライバー用に読み込まれたデバイス スタックを次に示します。

ucx デバイス スタック。