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をご参照ください。
特定のデバイスのすべての関数ドライバーとフィルター ドライバーは、同じドライバー ホスト プロセスで実行する必要がありますが、複数のホスト プロセスを同時に実行できます。
次の図は、ドライバー ホストプロセス、ドライバー マネージャー、およびリフレクターがユーザー モード/カーネル モードの境界を越えて通信する方法を示しています。