IDXGIFactory2::GetSharedResourceAdapterLuid 方法 (dxgi1_2.h)
标识创建共享资源对象的适配器。
语法
HRESULT GetSharedResourceAdapterLuid(
[in] HANDLE hResource,
[out] LUID *pLuid
);
参数
[in] hResource
共享资源对象的句柄。 IDXGIResource1::CreateSharedHandle 方法返回此句柄。
[out] pLuid
指向一个变量的指针,该变量接收本地唯一标识符 (LUID) 标识适配器的值。 LUID 在 Dxgi.h 中定义。 LUID 是一个 64 位值,保证仅在生成它的操作系统上是唯一的。 只有在重新启动操作系统之前, 才保证 LUID 的唯一性。
返回值
GetSharedResourceAdapterLuid 返回:
- S_OK是否标识了适配器。
- 如果hResource 无效,DXGI_ERROR_INVALID_CALL。
- 可能是 DXGI_ERROR 主题中描述的其他错误代码。
适用于 Windows 7 的平台更新: 在安装了适用于 Windows 7 的平台更新的 Windows 7 或 Windows Server 2008 R2 上, GetSharedResourceAdapterLuid 失败并出现E_NOTIMPL。 有关 Windows 7 平台更新的详细信息,请参阅 适用于 Windows 7 的平台更新。
注解
不能跨适配器共享资源。 因此,不能在创建资源的适配器以外的适配器上打开共享资源。 在打开共享资源之前调用 GetSharedResourceAdapterLuid ,以确保在相应的适配器上创建了该资源。 若要打开共享资源,请调用 ID3D11Device1::OpenSharedResource1 或 ID3D11Device1::OpenSharedResourceByName 方法。
示例
HANDLE handle;
IDXGIFactory2* pFactory;
LUID luid;
pFactory->GetSharedResourceAdapterLuid (handle, &luid);
UINT index = 0;
IDXGIAdapter* pAdapter = NULL;
while (SUCCEEDED(pFactory->EnumAdapters(index, &pAdapter)))
{
DXGI_ADAPTER_DESC desc;
pAdapter->GetDesc(&desc);
if (desc.AdapterLuid == luid)
{
// Identified a matching adapter.
break;
}
pAdapter->Release();
pAdapter = NULL;
index++;
}
// At this point, if pAdapter is non-null, you identified an adapter that
// can open the shared resource.
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | dxgi1_2.h |
Library | Dxgi.lib |