Bagikan melalui


Metode IHostAssemblyStore::ProvideAssembly

Mendapatkan referensi pada rakitan yang tidak direferensikan oleh ICLRAssemblyReferenceList yang ditampilkan dari IHostAssemblyManager::GetNonHostStoreAssemblies. Runtime bahasa umum (CLR) memanggil ProvideAssembly untuk setiap rakitan yang tidak muncul dalam daftar.

Sintaks

HRESULT ProvideAssembly (  
    [in]  AssemblyBindInfo *pBindInfo,  
    [out] UINT64           *pAssemblyId,  
    [out] UINT64           *pHostContext,  
    [out] IStream          **ppStmAssemblyImage,  
    [out] IStream          **ppStmPDB  
);  

Parameter

pBindInfo
[in] Penunjuk ke instans AssemblyBindInfo yang digunakan host untuk menentukan karakteristik ikatan tertentu, termasuk ada atau tidak adanya kebijakan penerapan versi apa pun, dan rakitan mana yang akan diikat.

pAssemblyId
[out] Penunjuk ke pengidentifikasi unik untuk rakitan yang diminta untuk IStream ini.

pHostContext
[out] Penunjuk ke data khusus host yang digunakan untuk menentukan bukti atas rakitan yang diminta tanpa memerlukan panggilan platform. pHostContext sesuai dengan properti HostContext dari kelas Assembly yang dikelola.

ppStmAssemblyImage
[out] Penunjuk ke alamat IStream yang berisi gambar portabel yang dapat dijalankan (PE) yang akan dimuat, atau null jika rakitan tidak dapat ditemukan.

ppStmPDB
[out] Penunjuk ke alamat IStream yang berisi informasi debug program (PDB), atau null jika file .pdb tidak dapat ditemukan.

Tampilkan Nilai

HRESULT Deskripsi
S_OK ProvideAssembly berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE Runtime bahasa umum belum dimuat ke dalam proses, atau runtime bahasa umum dalam status yaitu tidak dapat menjalankan kode aman atau memproses panggilan dengan sukses.
HOST_E_TIMEOUT Waktu panggilan habis.
HOST_E_NOT_OWNER Pemanggil tidak memiliki kunci.
HOST_E_ABANDONED Peristiwa dibatalkan saat rangkaian atau fiber yang diblokir sedang menunggunya.
E_FAIL Kegagalan katastrofe yang tidak diketahui terjadi. Saat metode menampilkan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting menampilkan HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Rakitan yang diminta tidak dapat ditemukan.
E_NOT_SUFFICIENT_BUFFER Ukuran buffer yang ditentukan oleh pAssemblyId tidak cukup besar untuk menyimpan pengidentifikasi yang ingin ditampilkan oleh host.

Keterangan

Nilai identitas yang ditampilkan untuk pAssemblyId ditentukan oleh host. Pengidentifikasi harus unik dalam masa pakai suatu proses. CLR menggunakan nilai ini sebagai pengidentifikasi unik untuk aliran. Demikian memeriksa setiap nilai terhadap nilai, agar pAssemblyId ditampilkan oleh panggilan lain ke ProvideAssembly. Jika host menampilkan nilai pAssemblyId yang sama untuk IStream lainnya, CLR memeriksa apakah konten aliran tersebut telah dipetakan. Jika demikian, runtime memuat salinan gambar yang ada, alih-alih memetakan yang baru.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Pustaka: Disertakan sebagai sumber daya di MSCorEE.dll

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga