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 的整个范围必须处于释放状态或属于通过调用 pfnMapGpuVirtualAddressCbpfnReserveGpuVirtualAddressCb 获取的 VA 范围。 指定 Protection.ZeroProtection.NoAccess 时,VA 范围不能属于通过调用 pfnMapGpuVirtualAddressCb 获取的范围。

用户模式驱动程序可以指定除了读取权限(默认情况下始终存在)之外,映射是否应允许写入和执行权限。

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

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

要求

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

另请参阅

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb