PFND3DDDI_MAPGPUVIRTUALADDRESSCB回调函数 (d3dumddi.h)

pfnMapGpuVirtualAddressCb 将 GPU 虚拟地址(VA)范围映射到特定的分配范围,或者将其置于 无效 状态。

语法

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

参数

hDevice

显示设备的句柄。

unnamedParam2

[in/out] pDate 是描述要执行的作的 D3DDDI_MAPGPUVIRTUALADDRESS 结构的指针。

返回值

pfnMapGpuVirtualAddressCb 返回以下值之一:

返回代码 描述
S_OK 作已成功完成。
E_PENDING 调用成功,但作未完成。 调用方必须在访问分配之前等待返回的围栏值。

此函数可能还会返回其他值。

言论

用户模式驱动程序可以指定基本 GPU 虚拟地址(VA)来映射或让视频内存管理器自动选取一个。 指定非 NULL BaseAddress 值时, 从 BaseAddressBaseAddress+大小 的整个范围必须处于释放状态或属于通过调用 pfnMapGpuVirtualAddressCbpfnReserveGpuVirtualAddressCb获得的 VA 范围。 指定 Protection.ZeroProtection.NoAccess 时,VA 范围不能属于通过调用 pfnMapGpuVirtualAddressCb获取的范围。

用户模式驱动程序可以指定映射是否应允许写入和执行特权,以及默认始终存在的读取权限。

在链接显示适配器(LDA)配置中,分页队列定义一个修改其页表的物理 GPU,分配句柄(如果不是 NULL)定义页表条目指向的位置。 分配可以驻留在任何物理 GPU 内存段中。

当分配(GPU VA 映射到)被销毁时,将释放 API 分配的 GPU VA 范围。 VA 范围也可以通过调用 PFND3DDDI_FREEGPUVIRTUALADDRESSCB来释放,但如有必要,这需要与分配销毁同步。

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
目标平台 桌面
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb