D3DDDI_RESERVEGPUVIRTUALADDRESS结构(d3dukmdt.h)
用户模式图形驱动程序将 D3DDDI_RESERVEGPUVIRTUALADDRESS 传递给 D3D 运行时的 pfnReserveGpuVirtualAddressCb 回调,以在当前进程的 GPU 虚拟地址空间中保留地址范围。
语法
typedef struct D3DDDI_RESERVEGPUVIRTUALADDRESS {
union {
D3DKMT_HANDLE hPagingQueue;
D3DKMT_HANDLE hAdapter;
};
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
D3DKMT_ALIGN64 D3DGPU_SIZE_T Size;
union {
D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE ReservationType;
UINT Reserved0;
};
union {
D3DKMT_ALIGN64 UINT64 DriverProtection;
D3DKMT_ALIGN64 UINT64 Reserved1;
};
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS VirtualAddress;
union {
D3DKMT_ALIGN64 UINT64 PagingFenceValue;
D3DKMT_ALIGN64 UINT64 Reserved2;
};
} D3DDDI_RESERVEGPUVIRTUALADDRESS;
成员
hPagingQueue
此成员已过时。 不要使用它。
hAdapter
[in]DirectX 图形适配器句柄或零(0)。 如果 UMD hAdapter 设置为 0,则 D3D 运行时会在调用 D3DKMTReserveGpuVirtualAddress 内核接口之前将 hAdapter 设置为内核的D3DKMT_HANDLE。
BaseAddress
[in/optional]在 GPU 虚拟地址空间中保留的字节数。 BaseAddress 必须与 64KB 边界对齐。
如果 BaseAddress 为非 NULL,则视频内存管理器会尝试将此地址用作保留范围的基址。 如果从 BaseAddress 到 BaseAddress+Size 的范围不是免费的,则调用将失败。 BaseAddress 为非 NULL 时,将忽略 minimumAddress 和 MaximumAddress。
如果指定 NULL,则视频内存管理器将选取指定 MinimumAddress 和 MaximumAddress中分配的基址。
MinimumAddress
[in/optional]要考虑保留范围的最小 GPU 虚拟地址。 MinimumAddress 以字节为单位,并且必须与 64KB 边界对齐。 当 baseAddress 为非 NULL 时,将忽略它。
MaximumAddress
[in/optional]要考虑保留范围的最大 GPU 虚拟地址。 视频内存管理器保证 BaseAddress+Size<= MaximumAddress。 如果 MaximumAddress 设置为 NULL,则视频内存管理器将不适用任何限制。
MaximumAddress 以字节为单位,并且必须与 64KB 边界对齐。 当 baseAddress 为非 NULL 时,将忽略它。
Size
[in]要保留的范围的大小(以字节为单位)。 必须是 64KB 的倍数。
ReservationType
此成员已过时。 不要使用它。
Reserved0
此成员是保留的,应设置为零。
DriverProtection
此成员已过时。 不要使用它。
Reserved1
此成员是保留的,应设置为零。
VirtualAddress
[out]保留的虚拟地址。
PagingFenceValue
此成员已过时。 不要使用它。
Reserved2
此成员是保留的,应设置为零。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 |
支持的最低服务器 | Windows Server 2016 |
标头 | d3dukmdt.h (包括 D3dumddi.h, D3dkmddi.h) |