周知のとおり、Windows 2000 以降、WDF ドライバー モデルは WDM に基づいてドライバー開発を行う必要がありますが、その開発は非常に難しく、ユーザー モード アプリケーションの開発ほど簡単であるとは期待できません。この状況を改善するために、Microsoft は新しいドライバー開発環境を立ち上げました。これは再発明ではなく、WDM に基づくモデリングとカプセル化であることを事前に指摘しておく必要があります。開発の難易度が軽減されることが大きな特徴です。なぜなら:
1. 通常のプログラミングにおける独自のオブジェクトベース技術をドライバ開発に応用する。 WDM にはオブジェクト モデルがありますが、それは真のオブジェクトベースのテクノロジと全く同じものではありません。オブジェクト ベースのテクノロジを実装するために、Microsoft はオブジェクト モデルを慎重に設計し、カプセル化しました。プロパティ、メソッド、イベントなど、「どれも欠けてはならない」。
2. カーネル モード ドライバーとユーザー モード ドライバーは両方とも、同じオブジェクト モデルを使用して構築され、同じ基本キャリアを使用します。この基盤がWDFです。 WDF はすでにカプセル化され定義されたオブジェクト モデルですが、カーネル モード オブジェクトとユーザー モード オブジェクトの場合、WDF は両方の親オブジェクトです。つまり、両方とも WDF から継承されるか、両方とも WDF から派生します。カーネル モードに関連して、派生オブジェクトは「KMD フレームワーク」または KMDF と呼ばれ、ユーザー モードに関連して、派生モデルは「UMD フレームワーク」または UMDF と呼ばれます。フレームワークのモデルに関係なく、その内部カプセル化メソッドと実行動作は、実際には WDM を使用して完了します。
3. さらに重要なことは、Microsoft が繰り返し披露してきたことですが、ドライバーに特定の一般的な動作がカプセル化されていることです。たとえば、プラグ アンド プレイや電源管理はこの一般的な動作に属します。ほとんどのドライバーはプラグ アンド プレイと電源管理の問題に対処する必要があるため、これには約数千行のコードが必要になると言われており、さらに、ある程度の熟練度がないとうまく処理できない可能性があります。この問題をきっぱりと解決するために、WDF はプラグ アンド プレイと電源管理をオブジェクトにカプセル化し、それをオブジェクトの既定の動作に一気にしました。
4. オペレーティング システムのカーネルとドライバーの関係が変更されました。WDM ドライバーでは、一方ではハードウェアを処理する必要があり、他方ではドライバー間の相互作用を処理する必要があります。そしてオペレーティングシステムのカーネル。現在、WDF はドライバーをオペレーティング システム カーネルから分離し、ドライバーとオペレーティング システムの間の対話はフレームワークにカプセル化されたメソッド (関数) によって完了するため、ドライバー開発者はハードウェアの動作の処理だけに集中する必要があります。これは、一方のことに集中して他方を犠牲にするという不都合を回避するだけでなく、両者の分離により、オペレーティング システムの特定の変更やハードウェア メーカーのサポート ドライバーの開発にも大きな利益をもたらします。 。
5. 両方のモードのドライバー (KMDF、UMDF) は、WDK と呼ばれる同じ環境を使用して構築されます。
つまり、KMDF と UMDF の開発環境は WDK です。
Windows Device Kit (WDK): テスト スイートを統合することで、DDK が WDK になります。 WDK は、Microsoft オペレーティング システム シリーズ用のドライバー統合開発システムです。これは、Windows DDK と Hardware Compatibility Test (HCT) キット (ハードウェア互換性テスト ツール) を組み合わせたもので、Windows オペレーティング システムの安定性と信頼性をテストするための Microsoft の内部テスト スイートも提供します。
6. カプセル化され、オブジェクトベースの技術が導入されていますが、開発されたドライバーの実行効率はオリジナルのものと遜色ありません。
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/ding_3/archive/2009/12/23/5060907.aspx
-