D3DKMTMapGpuVirtualAddress 関数 (d3dkmthk.h)

D3DKMTMapGpuVirtualAddress は、GPU 仮想アドレス範囲を特定の割り当て範囲にマップするか、 無効 または ゼロ 状態に設定します。

構文

NTSTATUS D3DKMTMapGpuVirtualAddress(
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam1
);

パラメーター

unnamedParam1

[入力/出力] pData は、操作を記述 するD3DDDI_MAPGPUVIRTUALADDRESS 構造体へのポインターです。

戻り値

リターン コード 説明
STATUS_SUCCESS デバイス コンテキストが正常に作成されました。
STATUS_INVALID_PARAMETER パラメーターが検証され、正しくないと判断されました。

この関数は、他の NTSTATUS 値も 返す場合があります。

注釈

ドライバーは、マップするベース GPU 仮想アドレス (VA) を指定するか、ビデオ メモリ マネージャーが自動的に選択できるようにします。 NULL 以外の BaseAddress 値を指定する場合、BaseAddress から BaseAddress+Size までの範囲全体が解放された状態であるか、D3DKMTMapGpuVirtualAddress または DxgkCbReserveGpuVirtualAddressRange を呼び出して取得された VA 範囲に属している必要があります。 Protection.Zero または Protection.NoAccess が指定されている場合、VA 範囲は MapGpuVirtualAddressCb を呼び出して取得した範囲に属できません。

ドライバーは、既定で常に存在する読み取り特権に加えて、マッピングで書き込みと実行の特権を許可するかどうかを指定できます。

リンクされたディスプレイ アダプター (LDA) の構成では、ページング キューはページ テーブルが変更される物理 GPU を定義し、割り当てハンドル (NULL でない場合) はページ テーブル エントリが指す場所を定義します。 割り当ては、任意の物理 GPU メモリ セグメントに常駐させることができます。

API によって割り当てられる GPU VA 範囲は、割り当て (GPU VA がマップされている) が破棄されると解放されます。 また、 D3DKMTFreeGpuVirtualAddress を呼び出すことで VA 範囲を解放することもできますが、必要に応じて割り当て破棄と同期する必要があります。

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム ユニバーサル
Header d3dkmthk.h (D3dkmthk.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください

DxgkCbReserveGpuVirtualAddressRange