カーネル モード ドライバー フレームワークの概要

カーネル モード ドライバー フレームワーク (KMDF) は、Microsoft Windows Driver Model (WDM) をサポートするカーネル モード ドライバーの開発に使用できるライブラリです。このフレームワークのライブラリは、Windows Vista 以降のバージョンの Windows Driver Kit (WDK) に含まれています。このライブラリおよびそれを含むドライバー キットを使用して、Microsoft Windows 2000 以降のバージョンの Windows オペレーティング システムで動作するドライバーを開発できます。

フレームワークベースのドライバーは、フレームワークで定義されているインターフェイスを使用します。フレームワークは、WDM インターフェイスを使用してオペレーティング システムと通信します。フレームワークには次のような特徴があります。

  • WDF インターフェイスよりも使いやすいドライバー インターフェイスを提供します。

  • ドライバーがプラグ アンド プレイ (PnP) と電源の管理のために通常サポートする必要がある多くの操作など、本来なら WDM ドライバー自身が処理する必要がある操作の多くを処理します。

  • マルチプロセッサ環境のサポートに必要な同期コードのほとんどを提供します。

WDM インターフェイスを使用するドライバーと異なり、フレームワークベースのドライバーは通常、オペレーティング システムのカーネル モード コンポーネント (PnP マネージャーや I/O マネージャーなど) と直接通信しません。代わりに、ドライバーはフレームワークと通信し、フレームワークが WDM インターフェイスを使用してオペレーティング システムと通信します。フレームワークはドライバーに送られたすべての I/O 要求を途中で受信し、一部の要求 (PnP マネージャーからの要求など) をドライバーのために処理し、その他の要求 (読み込みおよび書き込み要求など) をドライバーに渡します。

フレームワークは、オブジェクト ベースのインターフェイスをドライバーに提供します。ドライバーは、"オブジェクト メソッド" と呼ばれるオブジェクトのアクセス関数を使用して、各フレームワーク オブジェクトにアクセスします。WDM ではデバイス オブジェクトなどのいくつかのオブジェクトが定義されていますが、WDM インターフェイスを使用するドライバーは通常、オブジェクト メソッドを使用せずに直接オブジェクトの構造にアクセスします。

フレームワークを使用してドライバーへの書き込みを行うことができるかどうかを確認するには、「ドライバー モデルの選択」を参照してください。

このセクションの内容

カーネル モード ドライバー フレームワークのアーキテクチャ

フレームワークベースのドライバーの WDM の概念