PFND3DDDI_RESERVEGPUVIRTUALADDRESSCB回调函数 (d3dumddi.h)
D3D 运行时的 pfnReserveGPUVirtualAddressCb 回调在当前进程 GPU 虚拟地址空间中保留地址范围。 地址范围仅保留,它后面没有实际内存。
语法
PFND3DDDI_RESERVEGPUVIRTUALADDRESSCB Pfnd3dddiReservegpuvirtualaddresscb;
HRESULT Pfnd3dddiReservegpuvirtualaddresscb(
HANDLE hDevice,
D3DDDI_RESERVEGPUVIRTUALADDRESS *unnamedParam2
)
{...}
参数
hDevice
[in]显示设备的句柄。
unnamedParam2
[in/out]指向描述要执行的操作的 D3DDDI_RESERVEGPUVIRTUALADDRESS 结构的指针。
返回值
如果此回调函数成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
言论
用户模式驱动程序 (UMD) 可以通过为 BaseAddress指定非 NULL 值来选择要用于预留的基本 GPU 虚拟地址。 视频内存管理器(VidMm)将使用指定的范围(如果可用)。 如果范围与现有范围相交,则操作将失败。 UMD 可以传递 NULL BaseAddress,以便 VidMm 选取基址。
当 UMD 选择让 VidMm 选择 GPU 虚拟地址范围的基址时,UMD 可以选择通过为 MinimumAddress 和 MaximumAddress指定非 NULL 值来限制 VidMm 应考虑的范围。 VidMm 可确保分配的 GPU 虚拟地址范围完全包含在该区域中。 UMD 只能指定 MinimumAddress,其中 MaximumAddress 假定为地址空间的末尾。 或者 UMD 只能指定 MaximumAddress,其中 MinimumAddress 假定为 0。
当 UMD 调用 pfnReserveGpuVertualAddrsesCb 且 hAdapter 设置为 0 时,D3D 运行时将在调用 D3DKMTReserveGpuVirtualAddress 内核接口之前将 hAdapter 设置为内核的D3DKMT_HANDLE。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 |
支持的最低服务器 | Windows Server 2016 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |