Freigeben über


IHostAssemblyStore::P rovideAssembly-Methode

Ruft einen Verweis auf eine Assembly ab, auf die nicht von der ICLRAssemblyReferenceList verwiesen wird, die von IHostAssemblyManager::GetNonHostStoreAssemblies zurückgegeben wird. Die Common Language Runtime (CLR) ruft für jede Assembly auf ProvideAssembly , 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 vom Host verwendet wird, um bestimmte Bindungsmerkmale zu bestimmen, einschließlich des Vorhandenseins oder Fehlens einer Versionsverwaltungsrichtlinie und der Assembly, an die eine Bindung hergestellt werden soll.

pAssemblyId [out] Ein Zeiger auf einen eindeutigen Bezeichner für die angeforderte Assembly für diese IStream.

pHostContext [out] Ein Zeiger auf hostspezifische Daten, die verwendet werden, um den Nachweis 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 , das das zu ladende portable ausführbare Image (PE) enthält, oder null, wenn die Assembly nicht gefunden werden konnte.

ppStmPDB [out] Ein Zeiger auf die Adresse eines IStream Elements, das die Informationen zum Programmdebugging (PDB) enthält, oder null, wenn die PDB-Datei nicht gefunden wurde.

Rückgabewert

HRESULT Beschreibung
S_OK ProvideAssembly erfolgreich zurückgegeben.
HOST_E_CLRNOTAVAILABLE Die CLR wurde nicht in einen Prozess geladen, oder die CLR befindet sich in einem Zustand, in dem verwalteter Code nicht ausgeführt oder der Aufruf erfolgreich verarbeitet werden kann.
HOST_E_TIMEOUT Timeout des Anrufs.
HOST_E_NOT_OWNER Der Aufrufer besitzt die Sperre nicht.
HOST_E_ABANDONED Ein Ereignis wurde abgebrochen, während ein blockierter Thread oder eine Faser darauf wartete.
E_FAIL Unbekannter katastrophaler Fehler. Wenn eine Methode E_FAIL zurückgibt, kann der 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 angegebene pAssemblyId Puffergröße ist nicht groß genug, um den Bezeichner zu enthalten, den der Host zurückgeben möchte.

Bemerkungen

Der vom Host zurückgegebene pAssemblyId Identitätswert wird angegeben. Bezeichner müssen innerhalb der Lebensdauer eines Prozesses eindeutig sein. Der CLR verwendet diesen Wert als eindeutigen Bezeichner für den Datenstrom. Er überprüft jeden Wert anhand der Werte, pAssemblyId die von anderen Aufrufen ProvideAssemblyzurückgegeben werden. Wenn der Host denselben pAssemblyId Wert für einen anderen IStreamzurückgibt, überprüft die CLR, ob der Inhalt dieses Datenstroms bereits zugeordnet wurde. Wenn ja, lädt die Laufzeit die vorhandene Kopie des Bilds, anstatt eine neue zuzuordnen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Kopfball: MSCorEE.h

Bibliothek: In MSCorEE.dll als Ressource enthalten

.NET Framework-Versionen: Verfügbar seit 2.0

Siehe auch