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.