D3DKMTUpdateGpuVirtualAddress 函数 (d3dkmthk.h)

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

另请参阅

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange