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. pHostContext
HostContext 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