この記事では、DirectX グラフィックス カーネル サブシステム (Dxgkrnl.sys) を介して提供されるシステム提供のカーネル モード インターフェイスについて説明します。
- ディスプレイ ポート ドライバーは、 Dxgkrnl.sysの一部です。
- カーネル モード ディスプレイ ミニポート ドライバー (KMD) は、グラフィックス ハードウェア ベンダーによって実装されます。
Dxgkrnl によって実装される他の関数の説明については、次のような記事を参照してください。
Dxgkrnl インターフェイス
KMD の DriverEntry 関数は、オペレーティング システムの DxgkInitialize 関数を呼び出します。これにより、 Dxgkrnl が読み込まれて初期化されます。
読み込まれた Dxgkrnl.sys は、KMD の DxgkDdiStartDevice 関数にDXGKRNL_INTERFACE構造体を渡すことによって、その関数へのポインターを KMD に提供します。 Dxgkrnl の関数ポインターには、 DxgkCb プレフィックスがあります。
DXGKRNL_INTERFACE構造体には、特定のディスプレイ アダプターへのハンドルも含まれています。 ディスプレイ ポート ドライバーは、このハンドルを生成します。 KMD は、 DXGKRNL_INTERFACEのいずれかの関数を呼び出すたびに、このハンドルを引数として渡します。
ディスプレイ ポート ドライバー インターフェイス
KMD は、KMD が必要とするインターフェイスの種類を指定するDXGK_SERVICES値を使用して Dxgkrnl の DxgkCbQueryServices 関数を呼び出すことによって、ディスプレイ ポート ドライバーのインターフェイスを取得します。 ディスプレイ ポート ドライバーが提供するサービスには、AGP (高速グラフィックス ポート) サービス、デバッグ レポート サービス、時間指定操作サービスなどがあります。