IHostAssemblyStore::P rovideAssembly Method

Mendapatkan referensi ke rakitan yang tidak direferensikan oleh ICLRAssemblyReferenceList yang dikembalikan dari IHostAssemblyManager::GetNonHostStoreAssemblies. Panggilan ProvideAssembly runtime bahasa umum (CLR) untuk setiap rakitan yang tidak muncul dalam daftar.

Sintaksis

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

Parameter-parameternya

pBindInfo [di] 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 ini IStream.

pHostContext [out] Penunjuk ke data khusus host yang digunakan untuk menentukan bukti perakitan yang diminta tanpa perlu panggilan platform. pHostContext HostContext sesuai dengan properti kelas terkelolaAssembly.

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

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

Mengembalikan Nilai

HRESULT Deskripsi
S_OK ProvideAssembly berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE CLR belum dimuat ke dalam proses, atau CLR dalam keadaan di mana clr tidak dapat menjalankan kode terkelola 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 utas atau serat yang diblokir sedang menunggu di atasnya.
E_FAIL Kegagalan bencana yang tidak diketahui terjadi. Ketika metode mengembalikan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting mengembalikan HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Rakitan yang diminta tidak dapat ditemukan.
E_NOT_SUFFICIENT_BUFFER Ukuran buffer yang ditentukan tidak pAssemblyId cukup besar untuk menahan pengidentifikasi yang ingin dikembalikan host.

Komentar

Nilai identitas yang dikembalikan untuk pAssemblyId ditentukan oleh host. Pengidentifikasi harus unik dalam masa pakai proses. CLR menggunakan nilai ini sebagai pengidentifikasi unik untuk aliran. Ini memeriksa setiap nilai terhadap nilai untuk pAssemblyId dikembalikan oleh panggilan lain ke ProvideAssembly. Jika host mengembalikan nilai yang sama pAssemblyId untuk yang lain IStream, 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

Perpustakaan: Disertakan sebagai sumber daya dalam MSCorEE.dll

Versi .NET Framework: Tersedia sejak 2.0

Baca juga