ユーザーモードドライバーフレームワーク

ユーザーモードドライバーフレームワーク(UMDF)
開発者マイクロソフト
初回リリース2004年10月12日 (2004年10月12日
安定版リリース
2.27 / 2019年3月24日 ( 2019-03-24 )
リポジトリgithub .com /microsoft /Windows-Driver-Frameworks
書かれたCC++
オペレーティング·システムマイクロソフトウィンドウズ
タイプデバイスドライバ開発プラットフォーム
ライセンスMITライセンス
Webサイトdocs .microsoft .com /en-us /windows-hardware /drivers /wdf /umdf の概要

ユーザーモードドライバフレームワークUMDF )は、 MicrosoftWindows Vistaオペレーティングシステムで初めて導入されたデバイスドライバ開発プラットフォームであり、Windows XPでも利用可能です。UMDFは、特定のデバイスクラス向けのドライバ開発を容易にします。[ 1 ]

概要

標準デバイス ドライバは、特にマルチスレッド ソフトウェア環境では、非常に広範囲のシステムおよびデバイスの状態を処理する必要があるため、作成が困難な場合があります。すべての標準ドライバはカーネルに直接アクセスするときに高い権限を持っているため、不適切に作成されたデバイス ドライバは、システムに重大な損害 ( BSoDやデータ破損など) を引き起こす可能性があります。ユーザー モード ドライバ フレームワークは、直接ドライバ アクセスの問題からカーネルを切り離し、代わりに割り込みおよびメモリ管理のユーザー レベルで専用のアプリケーション プログラミング インターフェイスを備えた新しいクラスのドライバを提供します。エラーが発生した場合、この新しいフレームワークにより、システムに影響を与えることなく、ドライバを直ちに再起動できます。これは、断続的にシステムに接続されるデバイスや、USBFireWireなどのバス テクノロジを介したホットスワップをサポートするデバイスに特に便利です。

マイクロソフトによれば、UMDFドライバはカーネルモードドライバよりも記述とデバッグが簡単である。[ 2 ] しかし、UMDFはパフォーマンス重視のデバイスや高度なステートフルデバイスには使用されない。

UMDFの最初のバージョンは、 2004年10月12日にWindows Media Playerバージョン10の一部として出荷されました。コードネーム「Crescent」と呼ばれたこのバージョンは、メディア転送プロトコル(MPP)ドライバのサポートを目的として設計されましたが、公開インターフェースやドキュメントは提供されていませんでした。その後、MicrosoftはUMDFをデバイスドライバ開発プラットフォームへと転換することを決定しました。[ 3 ]

バージョン履歴

  • ユーザー モード ドライバー フレームワーク 1.5-1.9、Windows XP以降をサポートします。
  • ユーザーモードドライバーフレームワーク1.11は、Windows Vista以降およびWindows Server 2008以降をサポートしています。[ 4 ]
  • Windows 8.1以降をサポートするユーザーモードドライバーフレームワーク2.0 。 [ 5 ]

建築

UMDFドライバーは、Microsoftのコンポーネントオブジェクトモデル(COM)に基づくDLLです。ただし、UMDFはCOMをロード、アンロード、または同時実行制御には使用しません。COMはプログラミングパターンとしてのみ使用し、例えばCOMのIUnknownインターフェイスを利用します。起動時に、UMDFはDllGetClassObjectを呼び出してドライバー内のIClassFactoryインターフェイスへのポインタを取得し、IClassFactoryインターフェイスのCreateInstanceメソッドを使用してドライバーコールバックオブジェクトのインスタンスを作成します。

ドライバーオブジェクトは、フレームワークが提供するIWDFDriverインターフェースのインスタンスです。ドライバーは、ドライバーカスタマイズのメインエントリポイントである IDriverEntry COMインターフェースを介して一連のコールバックを提供します。

参照

参考文献