次の方法で共有


D3DKMTShareObjects 関数 (d3dkmthk.h)

D3DKMTShareObjectsD3KMTCreateAllocationD3KMTCreateAllocation2D3DKMTCreateKeyedMutex2、および 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_FLAGS、および D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 構造体で使用できます。

この関数では、hObjects パラメーターを使用して、次の入力オブジェクト配列型の組み合わせにのみハンドルを指定する必要があります。

  • 割り当て
  • 割り当て、キー付きミューテックス、および同期オブジェクト
  • 同期オブジェクト

オペレーティング システムは、他の入力ハンドルの組み合わせを拒否します。

必要条件

要件 価値
サポートされる最小クライアント 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