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.
[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
- Buat sumber daya sebagai bersama dan tentukan bahwa sumber daya menggunakan handel NT, dengan mengatur bendera D3D11_RESOURCE_MISC_SHARED_NTHANDLE .
- Dapatkan REFIID, atau GUID, antarmuka ke sumber daya dengan menggunakan makro __uuidof(). Misalnya, __uuidof(ID3D11Texture2D) mengambil GUID antarmuka ke tekstur 2D.
- Kueri sumber daya untuk antarmuka IDXGIResource1 .
- 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 |