D3DKMTUpdateGpuVirtualAddress 是磚資源內容中使用的特殊作業。 它可讓驅動程式指定一些對應作業,以套用至單一批次頁面數據表更新中的進程虛擬位址空間。
語法
NTSTATUS D3DKMTUpdateGpuVirtualAddress(
[in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);
參數
[in] unnamedParam1
描述作業之 D3DKMT_UPDATEGPUVIRTUALADDRESS 結構的指標。
傳回值
傳回碼 | 描述 |
---|---|
STATUS_SUCCESS | 已成功建立裝置內容。 |
STATUS_INVALID_PARAMETER | 已驗證參數,並判斷為不正確。 |
此函式也可能傳回其他 NTSTATUS 值。
言論
所有作業中的圖形處理單位 (GPU) 虛擬位址範圍(除了複製作業的來源)都必須屬於單一虛擬位址範圍,而此範圍是透過呼叫 reserveGpuVirtualAddressRange取得的單一虛擬位址範圍。 同樣地,複製作業中所有來源的虛擬位址範圍必須屬於單一虛擬位址範圍,這是藉由呼叫 ReserveGpuVirtualAddressRange取得。
分頁內容更新會在分頁內容上執行,專用於指定的轉譯內容,而且只有在指定的受監視柵欄對象發出 FenceValue 相關轉譯內容訊號之後,才會在 GPU 上執行。 當頁面數據表更新完成時,分頁內容會將受監視的柵欄對象發出訊號,以 FenceValue+1,讓轉譯內容與頁面數據表更新緊密連結。
更新作業中的虛擬位址範圍允許交集。 作業會依提交的順序套用。
在單一 UpdateVirtualAddress 呼叫中:
- 對應作業中的所有虛擬位址範圍和複製作業中的目的地範圍都必須屬於相同的保留 (零) 範圍。
- 複製作業中的來源虛擬位址範圍可以來自不同的保留範圍(零) 範圍。
- 所有複製作業中的來源虛擬位址範圍都必須屬於相同的保留 (零) 範圍。
驅動程式可以提交許多 UpdateGpuVirtualAddress 呼叫,其會在轉譯柵欄後面排入佇列。 當佇列更新作業數目超過 128 時,呼叫線程將會遭到封鎖,直到影片記憶體管理員處理先前的作業為止。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 |
支援的最低伺服器 | Windows Server 2016 |
目標平臺 | 普遍 |
標頭 | d3dkmthk.h (包括 D3dkmthk.h) |
連結庫 | Gdi32.lib |
DLL | Gdi32.dll |