D3DKMTUpdateGpuVirtualAddress 函式 (d3dkmthk.h)

D3DKMTUpdateGpuVirtualAddress 是磚資源內容中使用的特殊作業。 它可讓驅動程式指定要套用至單一分頁數據表更新中進程虛擬位址空間的一些對應作業。

語法

NTSTATUS D3DKMTUpdateGpuVirtualAddress(
  [in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);

參數

[in] unnamedParam1

描述作業之D3DKMT_UPDATEGPUVIRTUALADDRESS結構的指標。

傳回值

傳回碼 Description
STATUS_SUCCESS 已成功建立裝置內容。
STATUS_INVALID_PARAMETER 已驗證參數,並判斷為不正確。

此函式也可能傳回其他 NTSTATUS 值。

備註

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

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

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

在單一 UpdateVirtualAddress 呼叫中:

  • 對應作業中的所有虛擬位址範圍和複製作業中的目的地範圍都必須屬於相同的保留 (零) 範圍。
  • 複製作業中的來源虛擬位址範圍可以從不同的保留 (零) 範圍。
  • 所有複製作業中的來源虛擬位址範圍都必須屬於相同的保留 (零) 範圍。

驅動程式可以提交許多 UpdateGpuVirtualAddress 呼叫,這會排入轉譯柵欄後方。 當佇列更新作業數目超過 128 時,呼叫線程將會遭到封鎖,直到影片記憶體管理員處理先前的作業為止。

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
目標平台 Universal
標頭 d3dkmthk.h (包含 D3dkmthk.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange