Bagikan melalui


METODE ID3D11Device1::OpenSharedResource1 (d3d11_1.h)

Memberikan akses perangkat ke sumber daya bersama yang direferensikan oleh handel dan yang dibuat pada perangkat lain. Anda sebelumnya harus membuat sumber daya sebagai bersama dan menentukan bahwa sumber daya tersebut menggunakan handel NT (yaitu, Anda mengatur bendera D3D11_RESOURCE_MISC_SHARED_NTHANDLE ).

Sintaks

HRESULT OpenSharedResource1(
  [in]  HANDLE hResource,
  [in]  REFIID returnedInterface,
  [out] void   **ppResource
);

Parameter

[in] hResource

Handel ke sumber daya untuk dibuka. Untuk informasi selengkapnya tentang parameter ini, lihat Keterangan.

[in] returnedInterface

Pengidentifikasi unik global (GUID) untuk antarmuka sumber daya. Untuk informasi selengkapnya tentang parameter ini, lihat Keterangan.

[out] ppResource

Penunjuk ke variabel yang menerima penunjuk ke antarmuka untuk diakses objek sumber daya bersama.

Nilai kembali

Metode ini mengembalikan salah satu kode pengembalian Direct3D 11. Metode ini juga mengembalikan E_ACCESSDENIED jika izin untuk mengakses sumber daya tidak valid.

Pembaruan Platform untuk Windows 7: Pada Windows 7 atau Windows Server 2008 R2 dengan Pembaruan Platform untuk Windows 7 terinstal, OpenSharedResource1 gagal dengan E_NOTIMPL karena NTHANDLES digunakan. Untuk informasi selengkapnya tentang Pembaruan Platform untuk Windows 7, lihat Pembaruan Platform untuk Windows 7.

Keterangan

Perilaku OpenSharedResource1 mirip dengan perilaku metode ID3D11Device::OpenSharedResource ; setiap panggilan ke OpenSharedResource1 untuk mengakses sumber daya membuat objek sumber daya baru. Dengan kata lain, jika Anda memanggil OpenSharedResource1 dua kali dan meneruskan handel sumber daya yang sama ke hResource, Anda menerima dua objek sumber daya dengan pointer IUnknown yang berbeda.

Untuk berbagi sumber daya antara dua perangkat

  1. Buat sumber daya sebagai bersama dan tentukan bahwa sumber daya menggunakan handel NT, dengan mengatur bendera D3D11_RESOURCE_MISC_SHARED_NTHANDLE .
  2. Dapatkan REFIID, atau GUID, antarmuka ke sumber daya dengan menggunakan makro __uuidof(). Misalnya, __uuidof(ID3D11Texture2D) mengambil GUID antarmuka ke tekstur 2D.
  3. Kueri sumber daya untuk antarmuka IDXGIResource1 .
  4. Panggil metode IDXGIResource1::CreateSharedHandle untuk mendapatkan handel unik ke sumber daya.

Contoh

HANDLE handle = GetSharedHandleFromOtherProcess();
ID3D11Device1* pDevice;
ID3D11Texture2D* pTexture2D;

pDevice->OpenSharedResource1(
          handle, 
          __uuidof(ID3D11Texture2D), 
          (void**)&pTexture2D);

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 dan Platform Update untuk Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d3d11_1.h
Pustaka D3D11.lib

Lihat juga

ID3D11Device1