IHostAssemblyStore::P rovideAssembly – metoda

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

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 které sestavení se má svázat.

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

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

ppStmAssemblyImage [ven] Ukazatel na adresu IStream , která obsahuje přenosnou spustitelné image (PE), která se má načíst, nebo hodnotu null, pokud sestavení nebylo nalezeno.

ppStmPDB [ven] Ukazatel na adresu IStream obsahující informace o ladění programu (PDB) nebo hodnotu null, pokud nebyl nalezen soubor .pdb.

Návratová hodnota

HRESULT Description
S_OK ProvideAssembly byla úspěšně vrácena.
HOST_E_CLRNOTAVAILABLE Modul CLR nebyl načten do procesu nebo clr je ve stavu, ve kterém nemůže úspěšně spustit spravovaný kód nebo zpracovat volání.
HOST_E_TIMEOUT Vypršel časový limit hovoru.
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é katastrofické chybě. Když metoda vrátí E_FAIL, CLR již není možné použít v rámci procesu. Následná volání metod hostování vrací HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Požadované sestavení nebylo možné najít.
E_NOT_SUFFICIENT_BUFFER Velikost vyrovnávací paměti zadaná parametrem pAssemblyId není dostatečně velká, aby držela identifikátor, který chce hostitel vrátit.

Poznámky

Hodnota identity vrácená hostitelem pAssemblyId je určena. Identifikátory musí být v průběhu životnosti procesu jedinečné. CLR používá tuto hodnotu jako jedinečný identifikátor datového proudu. Kontroluje každou hodnotu s hodnotami vrácenými pAssemblyId jinými voláními ProvideAssembly. Pokud hostitel vrátí stejnou hodnotu pro jinou pAssemblyIdIStream, CLR zkontroluje, zda již byl namapován obsah tohoto datového proudu. Pokud ano, modul runtime načte existující kopii image místo mapování nové kopie.

Požadavky

Platformy: Viz požadavky na systém.

Záhlaví: MSCorEE.h

Knihovna: Zahrnutý jako prostředek v MSCorEE.dll

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

Viz také