ID3D11Device1::OpenSharedResourceByName メソッド (d3d11_1.h)
名前で参照され、別のデバイスで作成された共有リソースへのデバイス アクセス権をデバイスに付与します。 リソースを共有として作成し、NT ハンドルを使用するように指定しておく必要があります (つまり、 D3D11_RESOURCE_MISC_SHARED_NTHANDLE フラグを設定します)。
構文
HRESULT OpenSharedResourceByName(
[in] LPCWSTR lpName,
[in] DWORD dwDesiredAccess,
[in] REFIID returnedInterface,
[out] void **ppResource
);
パラメーター
[in] lpName
開くリソースの名前。 このパラメーターを NULL にすることはできません。
[in] dwDesiredAccess
リソースに対して要求されたアクセス権。 DXGI では、 汎用アクセス権に加えて、次の値を定義します。
- DXGI_SHARED_RESOURCE_READ ( 0x80000000L ) - リソースへの読み取りアクセスを指定します。
- DXGI_SHARED_RESOURCE_WRITE ( 1 ) - リソースへの書き込みアクセスを指定します。
[in] returnedInterface
リソース インターフェイスのグローバル一意識別子 (GUID)。 詳細については、「備考」を参照してください。
[out] ppResource
アクセスする共有リソース オブジェクトのインターフェイスへのポインターを受け取る変数へのポインター。
戻り値
このメソッドは、 Direct3D 11 のリターン コードのいずれかを返します。 このメソッドは、リソースにアクセスするためのアクセス許可が無効な場合もE_ACCESSDENIEDを返します。
Windows 7 のプラットフォーム更新プログラム: Windows 7 のプラットフォーム更新プログラム がインストールされている Windows 7 または Windows Server 2008 R2 では、NTHANDLES が使用されているため、 OpenSharedResourceByName はE_NOTIMPLで失敗します。 Windows 7 のプラットフォーム更新プログラムの詳細については、「Windows 7 用プラットフォーム更新プログラム」を参照してください。
注釈
OpenSharedResourceByName の動作は、ID3D11Device1::OpenSharedResource1 メソッドの動作に似ています。OpenSharedResourceByName を呼び出してリソースにアクセスするたびに、新しいリソース オブジェクトが作成されます。 言い換えると、 OpenSharedResourceByName を 2 回呼び出し、 lpName に同じリソース名を渡すと、異なる IUnknown ポインターを持つ 2 つのリソース オブジェクトを受け取ります。
2 つのデバイス間でリソースを共有するには
- D3D11_RESOURCE_MISC_SHARED_NTHANDLE フラグを設定して、リソースを共有として作成し、NT ハンドルを使用するように指定します。
- __uuidof() マクロを使用して、リソースへのインターフェイスの REFIID (GUID) を取得します。 たとえば、__uuidof(ID3D11Texture2D) は、インターフェイスの GUID を 2D テクスチャに取得します。
- IDXGIResource1 インターフェイスのリソースに対してクエリを実行します。
- IDXGIResource1::CreateSharedHandle メソッドを呼び出して、リソースへの一意のハンドルを取得します。 この IDXGIResource1::CreateSharedHandle 呼び出しでは、後で OpenSharedResourceByName を呼び出してリソースに名前でアクセスする場合は、リソースの名前を渡す必要があります。
例
ID3D11Device1* pDevice;
ID3D11Texture2D* pTexture2D;
pDevice->OpenSharedResourceByName(
"MySurface",
DXGI_SHARED_RESOURCE_READ,
__uuidof(ID3D11Texture2D),
(void**)&pTexture2D);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2 のWindows Server 2012とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | d3d11_1.h |
Library | D3D11.lib |