次の方法で共有


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

こちらもご覧ください

IDXGIFactory2