Freigeben über


IHostAssemblyStore::ProvideAssembly-Methode

Ruft einen Verweis auf eine Assembly ab, auf die nicht in der Liste ICLRAssemblyReferenceList verwiesen wird, die von IHostAssemblyManager::GetNonHostStoreAssemblies zurückgegeben wird. Die Common Language Runtime (CLR) ruft ProvideAssembly für jede Assembly auf, die nicht in der Liste angezeigt wird.

Syntax

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

Parameter

pBindInfo
[in] Ein Zeiger auf eine AssemblyBindInfo-Instanz, die der Host verwendet, um gewisse Bindungsmerkmale zu bestimmen (u. a. ob eine Versionsverwaltungsrichtlinie vorhanden ist oder nicht) und die Assembly für die Bindung zu ermitteln

pAssemblyId
[out] Ein Zeiger auf einen eindeutigen Bezeichner für die angeforderte Assembly für dieses IStream-Element

pHostContext
[out] Ein Zeiger auf hostspezifische Daten, die verwendet werden, um den Beweis der angeforderten Assembly zu ermitteln, ohne dass ein Plattformaufruf erforderlich ist. pHostContext entspricht der HostContext-Eigenschaft der verwalteten Assembly-Klasse.

ppStmAssemblyImage
[out] Ein Zeiger auf die Adresse eines IStream-Elements, das das zu ladende portable ausführbare Image enthält, oder null, wenn die Assembly nicht gefunden werden konnte

ppStmPDB
[out] Ein Zeiger auf die Adresse eines IStream-Elements, das die PDB-Informationen (Program Debug) enthält, oder null, wenn die PDB-Datei nicht gefunden werden konnte

Rückgabewert

HRESULT BESCHREIBUNG
S_OK ProvideAssembly wurde erfolgreich zurückgegeben.
HOST_E_CLRNOTAVAILABLE Die CLR wurde nicht in einen Prozess geladen, oder die CLR befindet sich in einem Zustand, in dem sie keinen verwalteten Code ausführen oder den Aufruf nicht erfolgreich verarbeiten kann.
HOST_E_TIMEOUT Timeout des Aufrufs.
HOST_E_NOT_OWNER Der Aufrufer besitzt die Sperre nicht.
HOST_E_ABANDONED Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine blockierte Fiber darauf gewartet hat.
E_FAIL Es ist ein unbekannter katastrophaler Fehler aufgetreten. Wenn eine Methode E_FAIL zurückgibt, kann die CLR nicht mehr innerhalb des Prozesses verwendet werden. Nachfolgende Aufrufe von Hostingmethoden geben HOST_E_CLRNOTAVAILABLE zurück.
COR_E_FILENOTFOUND (0x80070002) Die angeforderte Assembly konnte nicht gefunden werden.
E_NOT_SUFFICIENT_BUFFER Die von pAssemblyId angegebene Puffergröße ist nicht groß genug, um den Bezeichner zu enthalten, den der Host zurückgeben möchte.

Bemerkungen

Der für pAssemblyId zurückgegebene Identitätswert wird vom Host angegeben. Bezeichner müssen innerhalb der Lebensdauer eines Prozesses eindeutig sein. Die CLR verwendet diesen Wert als eindeutigen Bezeichner für den Stream. Sie überprüft jeden Wert anhand der Werte für pAssemblyId, die von anderen Aufrufen von ProvideAssembly zurückgegeben werden. Wenn der Host denselben pAssemblyId-Wert für ein anderes IStream-Element zurückgibt, überprüft die CLR, ob der Inhalt dieses Streams bereits zugeordnet wurde. Wenn dies der Fall ist, lädt die Runtime die vorhandene Kopie des Images, anstatt ein neues Image zuzuordnen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: MSCorEE.h

Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch