WDM ドライバー レイヤー: 例
このセクションでは、WDM ドライバーレイヤーを示すために、USB ハードウェア用の WDM ドライバーのセットについて説明します。
次の図は、USB ジョイスティックの PnP ハードウェア構成のサンプルを示しています。
この図では、USB ジョイスティックが USB ハブ上のポートに差し込まれています。 この例の USB ハブは USB ホスト コントローラー ボード上にあり、USB ホスト コントローラー ボードの単一ポートに接続されています。 USB ホスト コントローラーは PCI バスに接続します。 PnP の観点からは、USB ハブ、USB ホスト コントローラー、PCI バスはすべてバス デバイスとみなされます。これは、それぞれがポートを提供するためです。 ジョイスティックはバス デバイスではありません。
次の図は、前の図の USB ジョイスティック ハードウェアに読み込まれる可能性があるドライバーのサンプル セットを示しています。
前の図の下から順に、サンプル スタック内のドライバーは次のとおりです。
PCI バスを駆動する PCI ドライバー。 これは PnP バス ドライバーです。 Microsoft はシステムにPCI バス ドライバーを提供しています。
USB ホスト コントローラーのバス ドライバーは、クラス/ミニクラス ドライバー ペアとして実装されます。 Microsoftは、システムにUSB ホスト コントローラー クラスとミニクラス ドライバーを提供しています。
USB ハブを駆動する USB ハブ バス ドライバー。 Microsoft はシステムにUSB ハブ バス ドライバーを提供しています。
ジョイスティック用ドライバーは 3 つあり、。そのうちの 1 つはクラスとミニクラスペアです。
ファンクション ドライバーはジョイスティック デバイスのメイン ドライバーで、HID クラス ドライバー/HID USB ミニクラス ドライバーのペアです。 (HID は 「ヒューマン インターフェイス デバイス」 を表します)。HID USB ミニクラス ドライバーは、HID デバイスの USB 固有のセマンティクスをサポートし、一般的な HID サポートの HID クラス ドライバー DLL に依存します。
ファンクション ドライバーは、特定のデバイスに固有にすることも、HID の場合と同様に、ファンクション ドライバーがデバイスのグループにサービスを提供することもできます。 この例では、HID クラス ドライバー/HID USB ミニクラス ドライバー ペアは、USB バス上のシステム内の あらゆる HID 準拠デバイスをサポートします。 HID クラス ドライバー/HID 1394 ミニクラス ドライバーペアは、1394 バス上の HID 準拠デバイスをサポートします。
ファンクション ドライバーは、デバイス ベンダーまたは Microsoft によって記述できます。 この例では、ファンクション ドライバー (HID クラス/HID USB ミニクラス ドライバー ペア) は、Microsoft によって記述されています。
この例では、ジョイスティックには、マクロ ボタン機能を追加する上位クラス フィルターと、マウスとして動作させる下位レベル デバイス フィルターの 2 種類のフィルター ドライバーによって、機能拡張されています。
上位レベルのフィルターはジョイスティック I/O をフィルター処理する必要があるユーザーによって記述され、下位レベルのフィルター ドライバーはジョイスティック ベンダーによって記述されます。
カーネル モードおよびユーザー モード HID クライアントとアプリケーションはドライバーではありませんが、全体像を示すためにここに含まれています。