ID3D11Device1::OpenSharedResourceByName 메서드(d3d11_1.h)
이름으로 참조되고 다른 디바이스에서 생성된 공유 리소스에 대한 액세스 권한을 디바이스에 부여합니다. 이전에 리소스를 공유로 만들고 NT 핸들(즉, D3D11_RESOURCE_MISC_SHARED_NTHANDLE 플래그 설정)을 사용하도록 지정해야 합니다.
구문
HRESULT OpenSharedResourceByName(
[in] LPCWSTR lpName,
[in] DWORD dwDesiredAccess,
[in] REFIID returnedInterface,
[out] void **ppResource
);
매개 변수
[in] lpName
열 리소스의 이름입니다. 이 매개 변수는 NULL일 수 없습니다.
[in] dwDesiredAccess
리소스에 대한 요청된 액세스 권한입니다. DXGI는 일반 액세스 권한 외에도 다음 값을 정의합니다.
- DXGI_SHARED_RESOURCE_READ ( 0x80000000L) - 리소스에 대한 읽기 권한을 지정합니다.
- DXGI_SHARED_RESOURCE_WRITE ( 1 ) - 리소스에 대한 쓰기 액세스를 지정합니다.
[in] returnedInterface
리소스 인터페이스에 대한 GUID(Globally Unique Identifier)입니다. 자세한 내용은 비고를 참조하세요.
[out] ppResource
공유 리소스 개체가 액세스할 인터페이스에 대한 포인터를 수신하는 변수에 대한 포인터입니다.
반환 값
이 메서드는 Direct3D 11 반환 코드 중 하나를 반환합니다. 또한 이 메서드는 리소스에 액세스할 수 있는 권한이 유효하지 않은 경우 E_ACCESSDENIED 반환합니다.
Windows 7용 플랫폼 업데이트: Windows 7 용 플랫폼 업데이트 가 설치된 Windows 7 또는 Windows Server 2008 R2에서는 NTHANDLES가 사용되므로 OpenSharedResourceByName 이 E_NOTIMPL 실패합니다. Windows 7용 플랫폼 업데이트에 대한 자세한 내용은 Windows 7용 플랫폼 업데이트를 참조하세요.
설명
OpenSharedResourceByName의 동작은 ID3D11Device1::OpenSharedResource1 메서드의 동작과 비슷합니다. 리소스에 액세스하기 위해 OpenSharedResourceByName을 호출할 때마다 새 리소스 개체가 만들어집니다. 즉, OpenSharedResourceByName 을 두 번 호출하고 동일한 리소스 이름을 lpName에 전달하는 경우 서로 다른 IUnknown 포인터가 있는 두 개의 리소스 개체를 받게 됩니다.
두 디바이스 간에 리소스를 공유하려면
- 리소스를 공유로 만들고 D3D11_RESOURCE_MISC_SHARED_NTHANDLE 플래그를 설정하여 NT 핸들을 사용되도록 지정합니다.
- __uuidof() 매크로를 사용하여 리소스에 대한 인터페이스의 REFIID 또는 GUID를 가져옵니다. 예를 들어 __uuidof(ID3D11Texture2D)는 인터페이스의 GUID를 2D 텍스처로 검색합니다.
- IDXGIResource1 인터페이스에 대한 리소스를 쿼리합니다.
- IDXGIResource1::CreateSharedHandle 메서드를 호출하여 리소스에 대한 고유 핸들을 가져옵니다. 이 IDXGIResource1::CreateSharedHandle 호출에서 이후에 OpenSharedResourceByName 을 호출하여 이름으로 리소스에 액세스하려면 리소스의 이름을 전달해야 합니다.
예제
ID3D11Device1* pDevice;
ID3D11Texture2D* pTexture2D;
pDevice->OpenSharedResourceByName(
"MySurface",
DXGI_SHARED_RESOURCE_READ,
__uuidof(ID3D11Texture2D),
(void**)&pTexture2D);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d3d11_1.h |
라이브러리 | D3D11.lib |