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::OpenSharedResource1ID3D11Device1::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

另请参阅

IDXGIFactory2