Share via


D3DKMTShareObjects 函式 (d3dkmthk.h)

D3DKMTShareObjects 會共用使用 D3KMDTCreateAllocationD3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2D3DKMTCreateSynchronizationObject2 函式所建立的資源物件。

語法

NTSTATUS D3DKMTShareObjects(
  [in]  UINT                cObjects,
  [in]  const D3DKMT_HANDLE *hObjects,
  [in]  POBJECT_ATTRIBUTES  pObjectAttributes,
  [in]  DWORD               dwDesiredAccess,
  [out] HANDLE              *phSharedNtHandle
);

參數

[in] cObjects

hObjects 參數中提供的資源物件數目。 此值必須小於或等於 D3DKMT_MAX_OBJECTS_PER_HANDLE

[in] hObjects

本機內核模式句柄陣列的指標,指定要共用的資源物件。 如需詳細資訊,請參閱

[in] pObjectAttributes

指定資源物件屬性 之OBJECT_ATTRIBUTES 結構的指標。

[in] dwDesiredAccess

指定資源的讀取和寫入存取權。

對於 GPU 同步處理物件, dwDesiredAccess 可以是下列位欄位字段的組合, (定義於 d3dukmdt.h) 。

意義
STANDARD_RIGHTS_READ 開啟同步對象的進程可以讀取同步處理物件的狀態。 必須指定這個旗標,否則對象將無法存取。
D3DDDI_SYNC_OBJECT_WAIT 開啟同步物件的程式可能會發出同步物件的等候作業。
D3DDDI_SYNC_OBJECT_SIGNAL 開啟同步物件的程式可以發出同步對象的訊號作業。
D3DDDI_SYNC_OBJECT_ALL_ACCESS 開啟同步物件的程式可以發出同步物件的任何作業。

對於共享資源,可以將所需的存取指定為下列旗標的組合, (定義於 d3dkmthk.h) :

意義
STANDARD_RIGHTS_READ 開啟資源的進程可以具有讀取許可權。 必須指定這個旗標,否則對象將無法存取。
SHARED_ALLOCATION_WRITE 開啟資源的處理程式可以具有寫入許可權。 如果未指定此存取旗標,資源將會開啟為唯讀。
SHARED_ALLOCATION_ALL_ACCESS 開啟資源的進程可以擁有物件的所有存取權。

[out] phSharedNtHandle

指定資源物件的共享NT句柄指標。

如果未設定 NtSecuritySharing 旗標值,此參數將會是 NULL。 如需詳細資訊,請參閱

傳回值

如果作業成功,此方法會 傳回STATUS_SUCCESS 。 否則,這個方法可能會傳回適當的 NTSTATUS 錯誤碼。

備註

必須先建立使用 D3DKMTShareObjects 共用的物件,並設定 NtSecuritySharing 旗標值。 此旗標值可在 D3DKMT_CREATEALLOCATIONFLAGSD3DKMT_CREATEKEYEDMUTEX2_FLAGSD3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 結構中使用。

此函式必須透過 hObjects 參數指定句柄,只能指定下列輸入物件數位類型的組合:

  • 配置
  • 配置、索引鍵 Mutex 和同步處理物件
  • 同步處理物件

操作系統將會拒絕任何其他輸入句柄組合。

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 Universal
標頭 d3dkmthk.h (包含 D3dkmthk.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTCreateAllocation

D3DKMTCreateAllocation2

D3DKMTCreateKeyedMutex2

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS