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