共用方式為


ID3D11Fence::CreateSharedHandle 方法 (d3d11_3.h)

建立柵欄對象的共用句柄。

此方法相當於 Direct3D 12 ID3D12Device::CreateSharedHandle 方法,而且適用於 Direct3D 11 與 Direct3D 12 之間互通的案例。 在 DirecX 11 中,您可以使用 ID3D11Device5::OpenSharedFence 方法開啟共享柵欄控點。 在 DirecX 12 中,您可以使用 ID3D12Device::OpenSharedHandle 方法開啟共用柵欄控點。

語法

HRESULT CreateSharedHandle(
  [in, optional] const SECURITY_ATTRIBUTES *pAttributes,
                 DWORD                     dwAccess,
  [in, optional] LPCWSTR                   lpName,
  [out]          HANDLE                    *pHandle
);

參數

[in, optional] pAttributes

類型:const SECURITY_ATTRIBUTES*

包含兩個不同但相關數據成員之 SECURITY_ATTRIBUTES 結構的指標:選擇性的安全性描述元,以及 布爾值 值,決定子進程是否可以繼承傳回的句柄。

如果您想要讓應用程式建立的子進程不繼承 createSharedHandle所傳回的句柄,而且如果您希望與傳回句柄相關聯的資源取得預設安全性描述元,請將此參數設定為 NULL

lpSecurityDescriptor 結構的成員會指定資源的 SECURITY_DESCRIPTOR。 如果您想要讓運行時間將預設安全性描述元指派給與傳回句柄相關聯的資源,請將這個成員設定為 NULL。 資源的預設安全性描述元中的 ACL 來自建立者的主要或模擬令牌。 如需詳細資訊,請參閱 Synchronization Object Security and Access Rights

dwAccess

類型:DWORD

目前此參數接受的唯一值是GENERIC_ALL。

[in, optional] lpName

類型:LPCWSTR

NULL-terminated UNICODE 字串,其中包含要與共用堆積產生關聯的名稱。 名稱限制為MAX_PATH個字元。 名稱比較會區分大小寫。

如果 Name 符合現有資源的名稱,CreateSharedHandle 會失敗並 DXGI_ERROR_NAME_ALREADY_EXISTS。 這是因為這些對象共用相同的命名空間。

名稱可以有 「Global」 或 「Local」 前置詞,以明確在全域或會話命名空間中建立物件。 名稱的其餘部分可以包含反斜杠字元 (\) 以外的任何字元。 如需詳細資訊,請參閱 Kernel Object Namespaces。 使用終端機服務會話實作快速使用者切換。 核心物件名稱必須遵循終端機服務概述的指導方針,應用程式才能支援多個使用者。

物件可以在私人命名空間中建立。 如需詳細資訊,請參閱 物件命名空間

[out] pHandle

類型:HANDLE*

接收要共用之資源之NT HANDLE值的變數指標。 您可以在呼叫中使用這個句柄來存取資源。

傳回值

類型:HRESULT

如果成功,則傳回S_OK;否則,會傳回下列其中一個值:

言論

若要為指定的柵欄建立共用句柄,必須已使用 D3D11_FENCE_FLAG_SHAREDD3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER 旗標建立柵欄。 如需詳細資訊,請參閱 D3D11_FENCE_FLAG 列舉。

要求

要求 價值
目標平臺 窗戶
標頭 d3d11_3.h
連結庫 D3D11.lib
DLL D3D11.dll

另請參閱

ID3D11Fence