ID3D12Device::CreateSharedHandle メソッド (d3d12.h)
ヒープ、リソース、またはフェンス オブジェクトへの共有ハンドルを作成します。
構文
HRESULT CreateSharedHandle(
[in] ID3D12DeviceChild *pObject,
[in, optional] const SECURITY_ATTRIBUTES *pAttributes,
DWORD Access,
[in, optional] LPCWSTR Name,
[out] HANDLE *pHandle
);
パラメーター
[in] pObject
共有用に作成するヒープ、リソース、またはフェンス オブジェクトを表す ID3D12DeviceChild インターフェイスへのポインター。 次のインターフェイス (ID3D12DeviceChildから派生) がサポートされています。
[in, optional] pAttributes
型: const SECURITY_ATTRIBUTES*
2 つの独立した関連するデータ メンバー (省略可能なセキュリティ記述子)、および子プロセスが返されたハンドルを継承できるかどうかを決定する ブール型 値の 2 つを含む SECURITY_ATTRIBUTES 構造体へのポインター。
アプリケーションが作成する子プロセスが CreateSharedHandle
構造体の lpSecurityDescriptor メンバーは、リソースの SECURITY_DESCRIPTOR を指定します。
ランタイムが返されたハンドルに関連付けられているリソースに既定のセキュリティ記述子を割り当てる場合は、このメンバーを NULL に設定します。
リソースの既定のセキュリティ記述子の ACL は、作成者のプライマリ トークンまたは偽装トークンから取得されます。
詳細については、「同期オブジェクトのセキュリティとアクセス権のを
Access
型: DWORD
現在、このパラメーターが受け入れる唯一の値はGENERIC_ALLです。
[in, optional] Name
型: LPCWSTR
NULL-terminated UNICODE 文字列。共有ヒープに関連付ける名前が含まれています。 名前はMAX_PATH文字に制限されています。 名前の比較では、大文字と小文字が区別されます。
名前には、グローバル名前空間またはセッション名前空間にオブジェクトを明示的に作成するための "Global" または "Local" プレフィックスを付けることができます。
名前の残りの部分には、円記号 (\) を除く任意の文字を含めることができます。
詳細については、「カーネル オブジェクト名前空間
オブジェクトはプライベート名前空間に作成できます。 詳細については、「オブジェクト名前空間の」を参照してください。
[out] pHandle
型: HANDLE*
共有するリソースに NT HANDLE 値を受け取る変数へのポインター。 このハンドルは、リソースにアクセスするための呼び出しで使用できます。
戻り値
型: HRESULT
成功した場合はS_OKを返します。それ以外の場合は、次のいずれかの値を返します。
- いずれかのパラメーターが無効な場合に DXGI_ERROR_INVALID_CALL します。
- 共有するリソースの指定された名前が既に別のリソースに関連付けられている場合は、DXGI_ERROR_NAME_ALREADY_EXISTS します。
- オブジェクトが保護された名前空間に作成されているかどうかをE_ACCESSDENIEDします。
- ハンドルを作成するのに十分なメモリが使用できない場合にE_OUTOFMEMORYします。
- 「
Direct3D 12 リターン コード 」で説明されているその他のエラー コード 可能性があります。
備考
ヒープとコミットされたリソースの両方を共有できます。 コミットされたリソースを共有すると、暗黙的なヒープとコミットされたリソースの説明が共有されます。これにより、互換性のあるリソースの説明を別のデバイスからヒープにマップできます。
Direct3D 11 および Direct3D 12 相互運用シナリオでは、ID3D11Device5::OpenSharedFence メソッドを使用して DirectX 11 で共有フェンスが開き、ID3D11Device::OpenSharedResource1 メソッドを使用して共有リソースが開かれます。
Direct3D 12 では、ID3D12Device::OpenSharedHandle または ID3D12Device::OpenSharedHandleByName メソッドを使用して共有ハンドルが開かれます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | d3d12.h |
ライブラリ | D3D12.lib |
DLL | D3D12.dll |