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

另请参阅

DxgkCbReserveGpuVirtualAddressRange