UMDF の概要

このトピックでは、ユーザー モード ドライバー フレームワーク (UMDF) コンポーネントの高レベルの概要と、ドライバーがシステム提供のコンポーネントと対話する方法について説明します。 これは、UMDF バージョン 1 と 2 の両方に適用されます。

UMDF ドライバーは、ハードウェア機能を抽象化し、ユーザー モード環境で実行し、さまざまなサービスにアクセスできます。 UMDF ドライバーは、デバイスを管理するドライバーのスタックの一部として動作します。 ファイル システム ドライバー、ディスプレイ ドライバー (ディスプレイ専用ディスプレイ デバイスではなく、フル ディスプレイ デバイス用)、およびプリントドライバーを UMDF ドライバーにすることはできません。

UMDF ドライバーは、次のシステム提供のコンポーネントと対話します:

  • ドライバーのホスト プロセス

    ドライバーのホスト プロセスは、ベンダー提供の UMDF ドライバーとフレームワーク DLLs をロードし、ユーザー モード ドライバーの実行環境を提供し、ユーザー モード スタック内のドライバー間でメッセージをルーティングします。 詳細については、UMDF Driver Host Processをご参照ください。

  • ドライバー マネージャー

    ドライバー マネージャーは、Wudfhost ドライバー ホスト プロセスのすべてのインスタンスを管理する Windows サービスです。 ドライバー マネージャーが起動され、各ドライバー ホスト プロセスに関する情報を追跡します。 各ホストは、ドライバー マネージャーの子プロセスです。 システムごとに ドライバー マネージャーが 1 つだけ存在します。 ドライバー マネージャーは、最初の UMDF デバイスのインストール中に起動し、その後、システム上で実行されます。

  • Reflector

    リフレクターは、アプリケーションとドライバー ホスト プロセス (およびユーザー モード デバイス スタック) の通信を可能にするカーネル モード ドライバーです。 リフレクターは、デバイス インスタンスごとに個別のデバイス オブジェクトを作成し、各デバイス インスタンスに関連付けられたプラグ アンド プレイ (PnP) および電源 I/O リクエストを処理します。 アプリケーションとドライバー ホスト プロセス間のすべての通信は、リフレクターを介して行われます。 詳細については、Architecture of UMDFをご参照ください。

特定のデバイスのすべての関数ドライバーとフィルター ドライバーは、同じドライバー ホスト プロセスで実行する必要がありますが、複数のホスト プロセスを同時に実行できます。

次の図は、ドライバー ホストプロセス、ドライバー マネージャー、およびリフレクターがユーザー モード/カーネル モードの境界を越えて通信する方法を示しています。

umdf components including up and down device objects in reflector.