Bagikan melalui


ID3D11Device1::OpenSharedResourceByName metode (d3d11_1.h)

Memberikan akses perangkat ke sumber daya bersama yang direferensikan berdasarkan nama dan yang dibuat pada perangkat yang berbeda. 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 OpenSharedResourceByName(
  [in]  LPCWSTR lpName,
  [in]  DWORD   dwDesiredAccess,
  [in]  REFIID  returnedInterface,
  [out] void    **ppResource
);

Parameter

[in] lpName

Nama sumber daya yang akan dibuka. Parameter ini tidak boleh NULL.

[in] dwDesiredAccess

Hak akses yang diminta ke sumber daya. Selain hak akses generik, DXGI menentukan nilai berikut:

  • DXGI_SHARED_RESOURCE_READ ( 0x80000000L ) - menentukan akses baca ke sumber daya.
  • DXGI_SHARED_RESOURCE_WRITE ( 1 ) - menentukan akses tulis ke sumber daya.
Anda dapat menggabungkan nilai dengan menggunakan operasi OR bitwise.

[in] returnedInterface

Pengidentifikasi unik global (GUID) untuk antarmuka sumber daya. Untuk informasi selengkapnya, 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, OpenSharedResourceByName gagal dengan E_NOTIMPL karena NTHANDLES digunakan. Untuk informasi selengkapnya tentang Pembaruan Platform untuk Windows 7, lihat Pembaruan Platform untuk Windows 7.

Keterangan

Perilaku OpenSharedResourceByName mirip dengan perilaku metode ID3D11Device1::OpenSharedResource1 ; setiap panggilan ke OpenSharedResourceByName untuk mengakses sumber daya membuat objek sumber daya baru. Dengan kata lain, jika Anda memanggil OpenSharedResourceByName dua kali dan meneruskan nama sumber daya yang sama ke lpName, 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. Dalam panggilan IDXGIResource1::CreateSharedHandle ini, Anda harus meneruskan nama untuk sumber daya jika Anda kemudian ingin memanggil OpenSharedResourceByName untuk mengakses sumber daya berdasarkan nama.

Contoh

ID3D11Device1* pDevice;
ID3D11Texture2D* pTexture2D;

pDevice->OpenSharedResourceByName(
          "MySurface", 
          DXGI_SHARED_RESOURCE_READ, 
          __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