Windows ディスプレイ ドライバー モデル (WDDM) には、ユーザー モードとカーネル モードのコンポーネントがあります。 次の図は WDDM アーキテクチャのさまざまなコンポーネントを示したものです。
システム提供モジュールが図で白いボックスとして示されています。 グレーのボックスは、パートナーが提供できるモジュールを表しています。 アプリケーションは、システム提供のものか、パートナーによって開発されたものです。
システム提供モジュール
次のシステム提供モジュールは WDDM アーキテクチャの一部です。
Direct3D ランタイムは、アプリケーション用のアプリケーション API を提供するユーザー モード コンポーネントです。 さまざまなサービスを提供し、アプリケーション、ユーザー モード グラフィックス ドライバー (UMD)、および gdi32.dll の間のやりとりを管理します。
gdi32.dll は、D3D ランタイムまたはパートナー グラフィックス クライアントがリンクするユーザー モード ライブラリです。 ランタイムまたはクライアントは、DirectX カーネル サブシステム (Dxgkrnl) 内の適切なカーネル モード関数に呼び出しをルーティングする gdi32 "サンク" を呼び出します。
Dxgkrnl は、Windows オペレーティング システムのカーネル モード グラフィックス サブシステムのコア コンポーネントです。 オペレーティング システム、UMD、カーネル モード ディスプレイ ミニポート ドライバー (KMD) の間の通信を容易にします。 Dxgkrnl には、ディスプレイ ポート ドライバー、メモリ マネージャー (VidMm)、スケジューラー (VidSch) などのサブコンポーネントが含まれています。 Dxgkrnl は、次のシステム ファイルで構成されます。
- dxgmms2.sys。WDDM バージョン 2.0 以降の GPU/NPU スケジューラとビデオ メモリ マネージャーを実装します。
- dxgmms1.sys。WDDM バージョン 2.0 以降の WDDM に対して、GPU/NPU スケジューラとビデオ メモリ マネージャーを実装します。
- dxgkrnl.sys。DirectX カーネル サブシステム内のすべてを処理します。これには、必要な dxgmms.sys ファイルのローディング、ユーザー モードでの D3DKMTXxx 呼び出しの初期処理、モードの表示、GPU の可視化、電源管理、カーネル エグゼクティブとのインターフェイスなどが含まれます。
Win32 GDI と Win32k.sys は、一部のアプリケーションで引き続き使用されるレガシー コンポーネントです。
サード パーティ提供モジュール
UMD は、Direct3D ランタイムが読み込むダイナミックリンク ライブラリ (DLL) です。
KMD は Dxgkrnl およびグラフィックス ハードウェアと通信します。
グラフィックス ハードウェア ベンダーは UMD と KMD の両方を提供する必要があります。
- サード パーティのパートナー グラフィックス クライアントは、独自の API とフレームワークを持つユーザー モード コンポーネントです。 gdi32 サンクを呼び出して、カーネル モードのグラフィックス サブシステムと通信します。 Microsoft が認識しているクライアントは D3DKMT_CLIENTHINT に一覧表示されます。