D3DKMTShareObjects 関数 (d3dkmthk.h)
D3DKMTShareObjects は、D3KMDTCreateAllocation、D3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2、および 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 パラメーターを使用してハンドルを指定する必要があります。
- 割り当て
- 割り当て、キー付きミューテックス、および同期オブジェクト
- 同期オブジェクト
オペレーティング システムは、他の入力ハンドルの組み合わせを拒否します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | ユニバーサル |
Header | d3dkmthk.h (D3dkmthk.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |
こちらもご覧ください
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS