ID3D12Device3::OpenExistingHeapFromAddress 方法 (d3d12.h)
从地址在系统内存中创建一个特殊用途的诊断堆。 即使出现 GPU 故障或设备删除的情况,创建的堆也可以保留。
语法
HRESULT OpenExistingHeapFromAddress(
[in] const void *pAddress,
REFIID riid,
[out] void **ppvHeap
);
参数
[in] pAddress
类型: const void*
用于创建堆的地址。
riid
类型: REFIID
堆接口的全局唯一标识符 (GUID) (ID3D12Heap) 。
可以使用 __uuidof () 宏获取堆接口的 REFIID 或 GUID。 例如, __uuidof (ID3D12Heap) 将检索堆接口的 GUID 。
[out] ppvHeap
类型: void**
SAL: COM_Outptr
指向内存块的指针。 成功后,D3D12 运行时会将指向新打开的堆的指针写入内存块。 指针的类型取决于提供的 riid 参数。
返回值
类型: HRESULT
如果内存不足,无法打开现有堆,此方法将返回 E_OUTOFMEMORY 。 有关其他可能的返回值,请参阅 Direct3D 12 返回代码 。
备注
堆在系统内存中创建,并允许 CPU 访问。 它包装整个 VirtualAlloc 区域。
堆可用于放置和保留的资源,与其他堆一样正交。 根据无法选择应用的标志,可能仍存在限制。
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3d12.lib |
DLL | D3d12.dll |