次の方法で共有


DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE コールバック関数 (d3dkmddi.h)

カーネル モード表示ミニポート ドライバーは、プロセスの作成時にグラフィックス処理装置 (GPU) 仮想アドレス範囲を予約する DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE を呼び出すことができます。

構文

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE DxgkcbReservegpuvirtualaddressrange;

NTSTATUS DxgkcbReservegpuvirtualaddressrange(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE pArgs
)
{...}

パラメーター

[in] hAdapter

ディスプレイ アダプターのハンドル。

[in/out] pArgs

操作を記述する DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE 構造体。

戻り値

成功した場合、DXGKCB_RESERVEGPUVIRTUALADDRESSRANGESTATUS_SUCCESS を返します。 それ以外の場合は、Ntstatus.hで定義されているエラー コードのいずれかを返します。

備考

GPU 仮想アドレス範囲の予約は、プロセスの作成時 (つまり、DxgkDdiCreateProcess呼び出し内) にのみ可能であり、それ以外の場合は無効です。

予約は、通常のプロセスと、システム デバイスとコンテキストが存在するシステム プロセスの両方で可能です。

ルート ページ テーブルの最初のエントリ (ページ テーブル エントリ インデックス 0) は、常にビデオ メモリ マネージャーによって無効として初期化され、ドライバーの予約はページ テーブル エントリ インデックス 1 から開始されます。 特定のページ テーブル エントリをビデオ メモリ マネージャーとカーネル モード ドライバーの間で共有できないため、ドライバーの予約は常に、リーフ ページ テーブルでカバーされる仮想アドレス空間の正確な倍数である必要があります。 ドライバーによって予約されたページ テーブル エントリは、ビデオ メモリ マネージャーによって無効な 初期化され、ドライバーによって管理されている内部割り当てページ テーブルを参照するようにドライバーによって上書きされる可能性があります。 ビデオ メモリ マネージャーは、対応するページ テーブルが常駐になるたびに、予約ページ テーブルエントリを無効として更新します。

DXGKCB_XXX 関数は、Dxgkrnlによって実装されます。 このコールバック関数を使用するには、DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE の適切なメンバーを設定し、DXGKRNL_INTERFACEを介して DxgkCbReserveGpuVirtualAddressRange 呼び出します。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 (WDDM 2.0)
サポートされる最小サーバー Windows Server 2016
ターゲット プラットフォーム デスクトップ
ヘッダー d3dkmddi.h (Dispmprt.h を含む)
IRQL <= PASSIVE_LEVEL

関連項目

DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE

DxgkDdiCreateProcessする

DXGKRNL_INTERFACE