D3DDDI_MAPGPUVIRTUALADDRESS结构(d3dukmdt.h)

D3DDDI_MAPGPUVIRTUALADDRESS 结构用于 pfnMapGpuVirtualAddressCb,将 GPU 虚拟地址范围映射到特定分配范围,或将其置于 无效 状态。

语法

typedef struct D3DDDI_MAPGPUVIRTUALADDRESS {
  D3DKMT_HANDLE                           hPagingQueue;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MinimumAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MaximumAddress;
  D3DKMT_HANDLE                           hAllocation;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            OffsetInPages;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInPages;
  D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
  D3DKMT_ALIGN64 UINT64                   DriverProtection;
  UINT                                    Reserved0;
  D3DKMT_ALIGN64 UINT64                   Reserved1;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   VirtualAddress;
  D3DKMT_ALIGN64 UINT64                   PagingFenceValue;
} D3DDDI_MAPGPUVIRTUALADDRESS;

成员

hPagingQueue

用于作的设备分页队列的句柄。

BaseAddress

(可选)如果为非 NULL,则视频内存管理器将尝试将此地址用作映射的基址。 如果从 BaseAddressBaseAddress+Size 的范围不是免费的,则它必须属于以前通过调用 pfnReserveGpuVirtualAddressCbpfnMapGpuVirtualAddressCb获取的范围。

BaseAddress 值以字节为单位,必须与 CPU 页边界对齐。 如果指定 NULL,则视频内存管理器将选取指定 MinimumAddressMaximumAddress中分配的基址。

MinimumAddress

(可选)指定要为映射范围考虑的最小 GPU 虚拟地址。

MinimumAddress 值为字节,并且必须与 4KB 页对齐。 BaseAddress != NULL 时,将忽略此参数。

MaximumAddress

(可选)指定要为映射范围考虑的最大 GPU 虚拟地址。 视频内存管理器将保证 BaseAddress+Size<= MaximumAddress。 如果 MaximumAddress 设置为 NULL,则视频内存管理器将不适用任何限制。

MaximumAddress 值以字节为单位,必须与 4KB 页面对齐。 BaseAddress != NULL 时,将忽略此参数。

hAllocation

映射到 GPU 虚拟地址空间的分配的句柄。 指定 protection.NoAccessProtection.Zero 时,必须为 NULL。

OffsetInPages

指定必须映射的指定分配中的起始页的偏移量(以 4KB 为单位)。

SizeInPages

指定要映射的范围的大小,以 4KB 页为单位。

Protection

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE 结构,指定映射的 GPU 虚拟地址上的保护。

DriverProtection

指定与要分配的 VA 范围关联的特定于驱动程序的 64 位保护值。 指定的驱动程序保护将用于调用 DxgkDdiUpdatePageTable 对应于此虚拟地址范围的页表条目。

Reserved0

此成员是保留的,应设置为零。

Reserved1

此成员是保留的,应设置为零。

VirtualAddress

分配给分配的虚拟地址。

PagingFenceValue

当地图作在 GPU 上完成时,视频内存管理器发出信号的设备分页围栏值。 用户模式驱动程序必须确保此围栏已停用或显式等待该围栏上的 CPU 或 GPU,然后允许 GPU 访问映射范围或可能发生不可恢复的故障。 可能会返回零围栏值,这意味着作已完成。

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
标头 d3dukmdt.h (包括 D3dumddi.h, D3dkmddi.h)

另请参阅

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb