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 |
対象プラットフォーム | デスクトップ |
Header | d3dkmddi.h (Dispmprt.h を含む) |
IRQL | <= PASSIVE_LEVEL |