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