IDXGIResource::GetSharedHandle 메서드(dxgi.h)
[Direct3D 11.1부터 는 GetSharedHandle 을 더 이상 사용하여 공유 리소스에 대한 핸들을 검색하지 않는 것이 좋습니다. 대신 IDXGIResource1::CreateSharedHandle을 사용하여 공유 핸들을 가져옵니다. IDXGIResource1::CreateSharedHandle을 사용하려면 리소스를 공유로 만들고 NT 핸들(즉, D3D11_RESOURCE_MISC_SHARED_NTHANDLE 플래그 설정)을 사용하도록 지정해야 합니다. 또한 이러한 공유 리소스에서 CloseHandle, DuplicateHandle 등을 사용할 수 있도록 NT 핸들을 사용하는 공유 리소스를 만드는 것이 좋습니다.]
공유 리소스에 대한 핸들을 가져옵니다.
구문
HRESULT GetSharedHandle(
[out] HANDLE *pSharedHandle
);
매개 변수
[out] pSharedHandle
형식: HANDLE*
핸들에 대한 포인터입니다.
반환 값
형식: HRESULT
DXGI_ERROR 값 중 하나를 반환합니다.
설명
GetSharedHandle은 공유로 만든 리소스에 대한 핸들을 반환합니다(즉, D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX 플래그를 사용하거나 사용하지 않고 D3D11_RESOURCE_MISC_SHARED 설정). 이 핸들을 ID3D11Device::OpenSharedResource 메서드에 전달하여 다른 디바이스에 공유 리소스에 대한 액세스 권한을 부여할 수 있습니다. 이 핸들을 다른 프로세스로 마샬링하여 다른 프로세스의 디바이스와 리소스를 공유할 수도 있습니다. 그러나 이 핸들은 NT 핸들이 아닙니다. 따라서 CloseHandle, DuplicateHandle 등과 함께 핸들을 사용하지 마세요.
공유 리소스의 작성자는 의도한 모든 엔터티가 리소스를 열 때까지 리소스를 삭제해서는 안됩니다. 핸들의 유효성은 기본 비디오 메모리의 수명에 연결됩니다. 이 리소스를 참조하는 디바이스에 리소스 개체가 없으면 핸들이 더 이상 유효하지 않습니다. 핸들 및 비디오 메모리의 수명을 연장하려면 디바이스에서 공유 리소스를 열어야 합니다.
GetSharedHandle은ID3D11Device::OpenSharedResource 에 전달된 리소스에 대한 핸들을 반환하여 해당 리소스를 열 수도 있습니다.
핸들을 가져올 리소스가 공유되지 않으면 GetSharedHandle 이 실패합니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | dxgi.h |
라이브러리 | DXGI.lib |