共用方式為


D3DKMTShareObjects 函式 (d3dkmthk.h)

D3DKMTShareObjects 共用使用 D3KMTCreateAllocation建立的資源物件,D3KMTCreateAllocation2D3DKMTCreateKeyedMutex2,以及 D3DKMTCreateSynchronizationObject2 函式。

語法

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
目標平臺 普遍
標頭 d3dkmthk.h (包括 D3dkmthk.h)
連結庫 Gdi32.lib
DLL Gdi32.dll

另請參閱

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DKMTCreateAllocation

D3DKMTCreateAllocation2

D3DKMTCreateKeyedMutex2

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATEALLOCATIONFLAGS

D3DKMT_CREATEKEYEDMUTEX2_FLAGS