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 值时, 从 BaseAddress 到 BaseAddress+大小 的整个范围必须处于释放状态或属于通过调用 D3DKMTMapGpuVirtualAddress 或 DxgkCbReserveGpuVirtualAddressRange获取的 VA 范围。 指定 Protection.Zero 或 Protection.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 |