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 值时, 从 BaseAddress 到 BaseAddress+大小 的整个范围必须处于释放状态或属于通过调用 pfnMapGpuVirtualAddressCb 或 pfnReserveGpuVirtualAddressCb获得的 VA 范围。 指定 Protection.Zero 或 Protection.NoAccess 时,VA 范围不能属于通过调用 pfnMapGpuVirtualAddressCb获取的范围。
用户模式驱动程序可以指定映射是否应允许写入和执行特权,以及默认始终存在的读取权限。
在链接显示适配器(LDA)配置中,分页队列定义一个修改其页表的物理 GPU,分配句柄(如果不是 NULL)定义页表条目指向的位置。 分配可以驻留在任何物理 GPU 内存段中。
当分配(GPU VA 映射到)被销毁时,将释放 API 分配的 GPU VA 范围。 VA 范围也可以通过调用 PFND3DDDI_FREEGPUVIRTUALADDRESSCB来释放,但如有必要,这需要与分配销毁同步。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 |
支持的最低服务器 | Windows Server 2016 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |