次の方法で共有


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

D3D ランタイムの pfnReserveGPUVirtualAddressCb コールバックは、現在のプロセス GPU 仮想アドレス空間内のアドレス範囲を予約します。 アドレス範囲は予約済みであり、その背後に実際のメモリはありません。

構文

PFND3DDDI_RESERVEGPUVIRTUALADDRESSCB Pfnd3dddiReservegpuvirtualaddresscb;

HRESULT Pfnd3dddiReservegpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_RESERVEGPUVIRTUALADDRESS *unnamedParam2
)
{...}

パラメーター

hDevice

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

unnamedParam2

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

戻り値

このコールバック関数が成功した場合は、S_OKを返します。 それ以外の場合は、HRESULT エラー コードが返されます。

備考

ユーザー モード ドライバー (UMD) は、baseAddress に NULL 以外の値を指定することで、予約に使用するベース GPU 仮想アドレス選択できます。 ビデオ メモリ マネージャー (VidMm) は、使用可能な場合は、指定した範囲を使用します。 範囲が既存の範囲と交差する場合、操作は失敗します。 UMD は、Null BaseAddress を渡して、VidMm ベース アドレスを選択できるようにします。

UMD が VidMm GPU 仮想アドレス範囲のベース アドレスを選択することを選択した場合、UMD は、MinimumAddress に NULL 以外の値を指定し、MaximumAddress することで、VidMm 考慮する必要がある範囲を制限することを選択できます。 VidMm 、割り当てられた GPU 仮想アドレス範囲が完全に範囲内に含まれていることを確認します。 UMD では、MinimumAddressのみを指定できます。ここで、MaximumAddress アドレス空間の末尾と見なされます。 または、UMD では、MaximumAddressのみを指定できます。ここで、MinimumAddress 0 と見なされます。

UMD が hAdapter 0 に設定された pfnReserveGpuVertualAddrsesCb を呼び出すと、D3D ランタイムは、D3DKMTReserveGpuVirtualAddress カーネル インターフェイスを呼び出す前に、hAdapter をカーネルのD3DKMT_HANDLE 設定します。

必要条件

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

関連項目

D3DDDI_RESERVEGPUVIRTUALADDRESS