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_RESERVEGPUVIRTUALADDRESSRANGE は STATUS_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をする