PFND3DDDI_MAPGPUVIRTUALADDRESSCB コールバック関数 (d3dumddi.h)

pfnMapGpuVirtualAddressCb は、GPU 仮想アドレス (VA) 範囲を特定の割り当て範囲にマップするか、 Invalid または Zero 状態に設定します。

構文

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル。

unnamedParam2

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

戻り値

pfnMapGpuVirtualAddressCb は、次のいずれかの値を返します。

リターン コード 説明
S_OK 操作は正常に完了しました。
E_PENDING 呼び出しは成功しましたが、操作は完了していません。 呼び出し元は、返されたフェンス値を待機してから、割り当てにアクセスする必要があります。

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

注釈

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb