IDXGIResource::GetSharedHandle 方法 (dxgi.h)
[從 Direct3D 11.1 開始,我們建議不再使用 GetSharedHandle 來擷取共用資源的控制碼。 請改用 IDXGIResource1::CreateSharedHandle 來取得共用的控制碼。 若要使用 IDXGIResource1::CreateSharedHandle,您必須將資源建立為共用,並指定它使用 NT 控制碼 (,也就是您設定D3D11_RESOURCE_MISC_SHARED_NTHANDLE旗標 ) 。 我們也建議您建立使用 NT 控制碼的共用資源,讓您可以在這些共用資源上使用 CloseHandle、 DuplicateHandle等等。
取得共用資源的控制碼。
語法
HRESULT GetSharedHandle(
[out] HANDLE *pSharedHandle
);
參數
[out] pSharedHandle
類型: HANDLE*
控制碼的指標。
傳回值
類型: HRESULT
傳回其中一個 DXGI_ERROR 值。
備註
GetSharedHandle會傳回您建立為共用 (的資源控制碼,也就是您設定D3D11_RESOURCE_MISC_SHARED與D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX旗標) 。 您可以將此控制碼傳遞至 ID3D11Device::OpenSharedResource 方法,以提供另一個裝置對共用資源的存取權。 您也可以封送處理此控制碼給另一個進程,以在另一個進程中與裝置共用資源。 不過,這個控制碼不是 NT 控制碼。 因此,請勿搭配 CloseHandle、 DuplicateHandle等使用控制碼。
共用資源的建立者在開啟資源之前,不得終結資源。 控制碼的有效性會系結至基礎視訊記憶體的存留期。 如果參照此資源的任何裝置上沒有任何資源物件存在,控制碼就不再有效。 若要延長控制碼和視訊記憶體的存留期,您必須開啟裝置上的共用資源。
GetSharedHandle 也可以傳回傳遞至 ID3D11Device::OpenSharedResource 的資源控制碼,以開啟這些資源。
如果想要取得控制碼的資源未共用,GetSharedHandle就會失敗。
需求
目標平台 | Windows |
標頭 | dxgi.h |
程式庫 | DXGI.lib |