UMDF ドライバー ホスト プロセス

ドライバー ホスト プロセスには、次のコンポーネントが含まれます。

  • UMDF ドライバーは、インプロセス COM (コンポーネント オブジェクト モデル) コンポーネント サーバーで、ダイナミック リンク ライブラリ (DLL) としてビルドされます。DLL はハードウェア ベンダーから提供されます。

  • フレームワークは、UMDF ドライバーが使用できる一連の UMDF オブジェクトのインターフェイスです。フレームワークには、UMDF ドライバーで必要なコードの量を制限するために既定の動作が実装されています。フレームワークもインプロセス COM コンポーネント サーバーとしてパッケージ化され、DLL としてビルドされます。

  • ランタイム環境は、ドライバー マネージャーとリフレクターの間のプロセス間通信 (IPC)、I/O ディスパッチ、ドライバーの読み込み、ドライバー階層化、およびスレッド プールを処理します。UMDF ドライバーでは、重要な操作に対しては、I/O によってブロックされないように専用のスレッドを使用します。重要な操作には、たとえば、プラグ アンド プレイと電源の管理、取り消し、クリーンアップ、終了などが含まれます。一方、重要でない操作に対しては、共有スレッドを使用します。重要でない操作には I/O などが含まれます。ランタイム環境のスレッド プールは、必要に応じて拡張または縮小できます。ただし、現在のバージョンでは、スレッド プールは 2 つのスレッドに固定されています。時間のかかる操作には、スレッドではなく作業項目を使用するようにしてください。

次の図は、ドライバー ホスト プロセスのコンポーネントの相互関係を示しています。階層化されたスタックのそれぞれのドライバーが、異なるバーションのフレームワークとやり取りできることに注意してください。

 

ドライバー ホスト プロセスを示す図

ドライバー ホスト プロセスを示す図