Sdílet prostřednictvím


IHostAssemblyStore::ProvideAssembly – metoda

Získá odkaz na sestavení, který není odkazován ICLRAssemblyReferenceList , který je vrácen z IHostAssemblyManager::GetNonHostStoreAssemblies. Modul CLR (Common Language Runtime) volá ProvideAssembly každé sestavení, které se v seznamu nezobrazuje.

Syntaxe

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

Parametry

pBindInfo
[v] Ukazatel na instanci AssemblyBindInfo , kterou hostitel používá k určení určitých vlastností vazby, včetně přítomnosti nebo nepřítomnosti jakékoli zásady správy verzí, a sestavení, které se má svázat.

pAssemblyId
[out] Ukazatel na jedinečný identifikátor požadovaného sestavení pro tento IStream.

pHostContext
[out] Ukazatel na data specifická pro hostitele, která se používá k určení důkazů požadovaného sestavení bez nutnosti volání volání platformy. pHostContextHostContext odpovídá vlastnosti spravované Assembly třídy.

ppStmAssemblyImage
[out] Ukazatel na adresu, která obsahuje image přenosného spustitelného IStream souboru (PE), který se má načíst, nebo null, pokud sestavení nebylo nalezeno.

ppStmPDB
[out] Ukazatel na adresu IStream , která obsahuje informace o ladění programu (PDB), nebo null, pokud soubor .pdb nelze najít.

Návratová hodnota

HRESULT Description
S_OK ProvideAssembly úspěšně vráceno.
HOST_E_CLRNOTAVAILABLE ClR nebyl načten do procesu nebo clr je ve stavu, ve kterém nemůže spustit spravovaný kód nebo úspěšně zpracovat volání.
HOST_E_TIMEOUT Časový limit hovoru vypršel.
HOST_E_NOT_OWNER Volající zámek nevlastní.
HOST_E_ABANDONED Událost byla zrušena, když na ni čekalo blokované vlákno nebo vlákno.
E_FAIL Došlo k neznámému katastrofickému selhání. Když metoda vrátí E_FAIL, CLR už není v rámci procesu použitelný. Následná volání metod hostování vrátí HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Požadované sestavení nelze najít.
E_NOT_SUFFICIENT_BUFFER Velikost vyrovnávací paměti určená parametrem pAssemblyId není dostatečně velká, aby vešla identifikátor, který chce hostitel vrátit.

Poznámky

Hodnota identity vrácená pro pAssemblyId je určena hostitelem. Identifikátory musí být jedinečné po celou dobu životnosti procesu. CLR používá tuto hodnotu jako jedinečný identifikátor datového proudu. Kontroluje každou hodnotu oproti hodnotám vráceným pAssemblyId jinými voláními .ProvideAssembly Pokud hostitel vrátí stejnou pAssemblyId hodnotu pro jiný IStream, CLR zkontroluje, jestli obsah tohoto datového proudu již byl namapován. Pokud ano, modul runtime místo mapování nové načte existující kopii image.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: MSCorEE.h

Knihovny: Zahrnuto jako prostředek v MSCorEE.dll

Verze rozhraní .NET Framework: K dispozici od verze 2.0

Viz také