Dela via


IHostAssemblyStore::P rovideAssembly, metod

Hämtar en referens till en sammansättning som inte refereras av ICLRAssemblyReferenceList som returneras från IHostAssemblyManager::GetNonHostStoreAssemblies. CLR (Common Language Runtime) anropar ProvideAssembly för varje sammansättning som inte visas i listan.

Syntax

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

Parametrar

pBindInfo
[in] En pekare till en AssemblyBindInfo-instans som värden använder för att fastställa vissa bindningsegenskaper, inklusive förekomsten eller frånvaron av någon versionsprincip och vilken sammansättning som ska bindas till.

pAssemblyId
[ut] En pekare till en unik identifierare för den begärda sammansättningen för den här IStream.

pHostContext
[ut] En pekare till värdspecifika data som används för att fastställa bevis för den begärda sammansättningen utan behov av ett plattformsanrop. pHostContext motsvarar egenskapen för HostContext den hanterade Assembly klassen.

ppStmAssemblyImage
[ut] En pekare till adressen till en IStream som innehåller den bärbara körbara avbildningen (PE) som ska läsas in, eller null om sammansättningen inte kunde hittas.

ppStmPDB
[ut] En pekare till adressen till en IStream som innehåller information om programfelsökning (PDB) eller null om .pdb-filen inte kunde hittas.

Returvärde

HRESULT Description
S_OK ProvideAssembly returnerades.
HOST_E_CLRNOTAVAILABLE CLR har inte lästs in i en process, eller så är CLR i ett tillstånd där den inte kan köra hanterad kod eller bearbeta anropet.
HOST_E_TIMEOUT Tidsgränsen för samtalet överst.
HOST_E_NOT_OWNER Anroparen äger inte låset.
HOST_E_ABANDONED En händelse avbröts medan en blockerad tråd eller fiber väntade på den.
E_FAIL Ett okänt oåterkalleligt fel inträffade. När en metod returnerar E_FAIL kan CLR inte längre användas i processen. Efterföljande anrop till värdmetoder returnerar HOST_E_CLRNOTAVAILABLE.
COR_E_FILENOTFOUND (0x80070002) Det gick inte att hitta den begärda sammansättningen.
E_NOT_SUFFICIENT_BUFFER Buffertstorleken som anges av pAssemblyId är inte tillräckligt stor för att innehålla den identifierare som värden vill returnera.

Kommentarer

Identitetsvärdet som returneras för pAssemblyId anges av värden. Identifierare måste vara unika inom livslängden för en process. CLR använder det här värdet som en unik identifierare för dataströmmen. Den kontrollerar varje värde mot de värden som pAssemblyId returneras av andra anrop till ProvideAssembly. Om värden returnerar samma pAssemblyId värde för en annan IStreamkontrollerar CLR om innehållet i dataströmmen redan har mappats. I så fall läser körningen in den befintliga kopian av avbildningen i stället för att mappa en ny.

Krav

Plattformar: Se Systemkrav.

Huvudet: MSCorEE.h

Bibliotek: Ingår som en resurs i MSCorEE.dll

.NET Framework versioner: Tillgänglig sedan 2.0

Se även