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_CREATEALLOCATIONFLAGS、D3DKMT_CREATEKEYEDMUTEX2_FLAGS和 D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 結構中使用。
此函式必須透過 hObjects 指定句柄, 參數只能指定下列輸入物件陣列類型的組合:
- 配置
- 配置、索引鍵 Mutex 和同步處理物件
- 同步處理物件
操作系統會拒絕任何其他輸入句柄組合。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 8 |
支援的最低伺服器 | Windows Server 2012 |
目標平臺 | 普遍 |
標頭 | d3dkmthk.h (包括 D3dkmthk.h) |
連結庫 | Gdi32.lib |
DLL | Gdi32.dll |
另請參閱
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS