共用方式為


PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB回呼函式 (d3dumddi.h)

pfnUpdateGpuVirtualAddressCb 是磚資源內容中使用的特殊作業。 它可讓使用者模式驅動程式指定一些對應作業,以在單一批次的頁面數據表更新中套用至進程的虛擬位址空間。

除了複製 (作業的來源位址以外,圖形處理單位 (GPU) 所有作業中的虛擬位址範圍,) 必須屬於呼叫 pfnReserveGpuVirtualAddressCb 取得的單一虛擬位址範圍。 同樣地,複製作業中所有來源的虛擬位址範圍必須屬於單一虛擬位址範圍,這是藉由呼叫 pfnReserveGpuVirtualAddressCb 取得。

分頁表更新會在分頁內容上執行,專用於指定的轉譯內容,而且只有在相關聯轉譯內容向所監視的柵欄對象發出 FenceValue 的關聯轉譯內容之後,才會在 GPU 上執行。 當頁面表更新完成時,分頁內容會將受監視的柵欄物件訊號傳送到 FenceValue+1,讓轉譯內容與頁面表更新緊密連結。

語法

PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;

HRESULT Pfnd3dddiUpdategpuvirtualaddresscb(
  HANDLE hDevice,
  const D3DDDICB_UPDATEGPUVIRTUALADDRESS *unnamedParam2
)
{...}

參數

hDevice

顯示裝置的句柄。

unnamedParam2

pData [in]

描述要執行的作業 之D3DDDICB_UPDATEGPUVIRTUALADDRESS 結構的指標。

傳回值

如果此回呼函式成功,它會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

更新作業中的虛擬位址範圍可以交集。 作業會依提交的順序套用。

在單一 pfnUpdateVirtualAddressCb 呼叫中:

  • 對應作業中的所有虛擬位址範圍和複製作業中的目的地範圍都必須屬於相同的保留 (零) 範圍。
  • 複製作業中的來源虛擬位址範圍可以來自不同的保留 (零) 範圍。
  • 所有複製作業中的來源虛擬位址範圍都必須屬於相同的保留 (零) 範圍。
使用者模式驅動程式可以提交許多 pfnUpdateGpuVirtualAddressCb 呼叫和作業會排入轉譯柵欄後方。 當佇列更新作業數目超過 128 時,呼叫線程將會遭到封鎖,直到影片記憶體管理員處理先前的作業為止。

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
目標平台 桌面
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb