Aracılığıyla paylaş


IHostAssemblyStore::ProvideAssembly Yöntemi

IHostAssemblyManager::GetNonHostStoreAssemblies'den döndürülen ICLRAssemblyReferenceList tarafından başvurulmayan bir derlemeye başvuru alır. Ortak dil çalışma zamanı (CLR), listede görünmeyen her derleme için çağrı ProvideAssembly yapar.

Sözdizimi

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

Parametreler

pBindInfo
[in] Ana bilgisayarın herhangi bir sürüm oluşturma ilkesinin varlığı veya yokluğu ve bağlanacak derleme dahil olmak üzere belirli bağlama özelliklerini belirlemek için kullandığı AssemblyBindInfo örneğine yönelik bir işaretçi.

pAssemblyId
[out] Bu IStreamiçin istenen derlemenin benzersiz tanımlayıcısına yönelik bir işaretçi.

pHostContext
[out] Platform çağırma çağrısına gerek kalmadan istenen derlemenin kanıtını belirlemek için kullanılan konağa özgü verilerin işaretçisi. pHostContextyönetilen Assembly sınıfın HostContext özelliğine karşılık gelir.

ppStmAssemblyImage
[out] Yüklenecek taşınabilir yürütülebilir (PE) görüntüyü içeren bir IStream adresinin işaretçisi veya derleme bulunamazsa null.

ppStmPDB
[out] Program hata ayıklama (PDB) bilgilerini içeren bir IStream adresinin işaretçisi veya .pdb dosyası bulunamazsa null.

Dönüş Değeri

HRESULT Description
S_OK ProvideAssembly başarıyla döndürüldü.
HOST_E_CLRNOTAVAILABLE CLR bir işleme yüklenmedi veya CLR yönetilen kodu çalıştıramadığı veya çağrıyı başarıyla işleyemediği bir durumda.
HOST_E_TIMEOUT Arama zaman aşımına uğradı.
HOST_E_NOT_OWNER Arayan, kilidin sahibi değil.
HOST_E_ABANDONED Engellenen bir iş parçacığı veya fiber beklerken bir olay iptal edildi.
E_FAIL Bilinmeyen bir yıkıcı hata oluştu. Bir yöntem E_FAIL döndürdüğünde, CLR artık işlem içinde kullanılamaz. Barındırma yöntemlerine yapılan sonraki çağrılar HOST_E_CLRNOTAVAILABLE döndürür.
COR_E_FILENOTFOUND (0x80070002) İstenen derleme bulunamadı.
E_NOT_SUFFICIENT_BUFFER tarafından pAssemblyId belirtilen arabellek boyutu, konağın döndürmek istediği tanımlayıcıyı tutacak kadar büyük değil.

Açıklamalar

için pAssemblyId döndürülen kimlik değeri konak tarafından belirtilir. Tanımlayıcılar, bir işlemin ömrü boyunca benzersiz olmalıdır. CLR bu değeri akış için benzersiz bir tanımlayıcı olarak kullanır. Her değeri, diğer çağrıları tarafından döndürülen değerlerle pAssemblyId karşılaştırarak ProvideAssemblydenetler. Konak başka bir IStreamiçin aynı pAssemblyId değeri döndürürse, CLR bu akışın içeriğinin zaten eşlenip eşlenmediğini denetler. Bu durumda, çalışma zamanı yenisini eşlemek yerine görüntünün mevcut kopyasını yükler.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: MSCorEE.h

Kitaplığı: MSCorEE.dll'da kaynak olarak dahil edilen

.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir

Ayrıca bkz.