D3DKMTMapGpuVirtualAddress 函数 (d3dkmthk.h)

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

语法

NTSTATUS D3DKMTMapGpuVirtualAddress(
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam1
);

参数

unnamedParam1

[in/out] pData 是指向描述作的 D3DDDI_MAPGPUVIRTUALADDRESS 结构的指针。

返回值

返回代码 描述
STATUS_SUCCESS 已成功创建设备上下文。
STATUS_INVALID_PARAMETER 参数已验证并确定不正确。

此函数还可以返回其他 NTSTATUS 值。

言论

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

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

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

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

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
目标平台 普遍
标头 d3dkmthk.h (包括 D3dkmthk.h)
Gdi32.lib
DLL Gdi32.dll

另请参阅

DxgkCbReserveGpuVirtualAddressRange