IDXGIResource::GetSharedHandle 方法 (dxgi.h)

[從 Direct3D 11.1 開始,我們建議不再使用 GetSharedHandle 來擷取共用資源的控制碼。 請改用 IDXGIResource1::CreateSharedHandle 來取得共用的控制碼。 若要使用 IDXGIResource1::CreateSharedHandle,您必須將資源建立為共用,並指定它使用 NT 控制碼 (,也就是您設定D3D11_RESOURCE_MISC_SHARED_NTHANDLE旗標 ) 。 我們也建議您建立使用 NT 控制碼的共用資源,讓您可以在這些共用資源上使用 CloseHandleDuplicateHandle等等。

取得共用資源的控制碼。

語法

HRESULT GetSharedHandle(
  [out] HANDLE *pSharedHandle
);

參數

[out] pSharedHandle

類型: HANDLE*

控制碼的指標。

傳回值

類型: HRESULT

傳回其中一個 DXGI_ERROR 值。

備註

GetSharedHandle會傳回您建立為共用 (的資源控制碼,也就是您設定D3D11_RESOURCE_MISC_SHARED與D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX旗標) 。 您可以將此控制碼傳遞至 ID3D11Device::OpenSharedResource 方法,以提供另一個裝置對共用資源的存取權。 您也可以封送處理此控制碼給另一個進程,以在另一個進程中與裝置共用資源。 不過,這個控制碼不是 NT 控制碼。 因此,請勿搭配 CloseHandleDuplicateHandle等使用控制碼。

共用資源的建立者在開啟資源之前,不得終結資源。 控制碼的有效性會系結至基礎視訊記憶體的存留期。 如果參照此資源的任何裝置上沒有任何資源物件存在,控制碼就不再有效。 若要延長控制碼和視訊記憶體的存留期,您必須開啟裝置上的共用資源。

GetSharedHandle 也可以傳回傳遞至 ID3D11Device::OpenSharedResource 的資源控制碼,以開啟這些資源。

如果想要取得控制碼的資源未共用,GetSharedHandle就會失敗。

需求

   
目標平台 Windows
標頭 dxgi.h
程式庫 DXGI.lib

另請參閱

IDXGIResource