Delen via


Methode IHostAssemblyStore::P rovideModule

Hiermee wordt een module in een assembly of een gekoppeld (maar niet ingesloten) bronbestand opgelost.

Syntaxis

HRESULT ProvideModule (  
    [in]  ModuleBindInfo *pBindInfo,  
    [out] DWORD          *pdwModuleId,  
    [out] IStream        **ppStmModuleImage,  
    [out] IStream        **ppStmPDB  
);  

Parameters

pBindInfo
[in] Een verwijzing naar een ModuleBindInfo-exemplaar waarin de naam van de aangevraagde module AppDomain, assembly en module wordt beschreven.

pdwModuleId
[uit] Een verwijzing naar een unieke id voor de IStream die de geladen module bevat.

ppStmModuleImage
[uit] Een verwijzing naar het adres van een IStream object, dat de draagbare uitvoerbare afbeelding (PE) bevat die moet worden geladen, of null als de module niet kan worden gevonden.

ppStmPDB
[uit] Een aanwijzer naar het adres van een IStream object, dat de PDB-informatie (program debug) voor de aangevraagde module bevat, of null als het PDB-bestand niet kan worden gevonden.

Retourwaarde

HRESULT Beschrijving
S_OK ProvideModule is geretourneerd.
HOST_E_CLRNOTAVAILABLE De Common Language Runtime (CLR) is niet geladen in een proces of de CLR bevindt zich in een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt.
HOST_E_TIMEOUT Er is een time-out opgetreden voor het gesprek.
HOST_E_NOT_OWNER De beller is niet de eigenaar van het vergrendelingsslot.
HOST_E_ABANDONED Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of vezel op wachtte.
E_FAIL Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) De aangevraagde assembly of gekoppelde resource kan niet worden gevonden.
E_NOT_SUFFICIENT_BUFFER pdwModuleId is niet groot genoeg om de id te bevatten die de host wil retourneren.

Opmerkingen

De id-waarde die wordt geretourneerd voor pdwModuleId wordt opgegeven door de host. Id's moeten uniek zijn binnen de levensduur van een proces. De CLR gebruikt deze waarde als de unieke id voor de gekoppelde stream. Elke waarde wordt gecontroleerd op basis van de waarden die pAssemblyId worden geretourneerd door aanroepen naar ProvideAssembly en op basis van de waarden die pdwModuleId worden geretourneerd door andere aanroepen naar ProvideModule. Als de host dezelfde id-waarde retourneert voor een andere IStream, controleert de CLR of de inhoud van die stream al is toegewezen. Als dat het zo is, laadt de CLR de bestaande kopie van de installatiekopie in plaats van een nieuwe toe te voegen. Daarom mag de id ook niet overlappen met de assembly-id's die worden geretourneerd door ProvideAssembly.

Vereisten

Platforms: Zie Systeemvereisten.

Header: MSCorEE.h

Bibliotheek: Opgenomen als een resource in MSCorEE.dll

.NET Framework versies: beschikbaar sinds 2.0

Zie ook