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 IStream
kontrollerar 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