Delen via


Methode ICorProfilerCallback6::GetAssemblyReferences

[Ondersteund in de .NET Framework 4.5.2 en latere versies]

Geeft de profiler een melding dat een assembly zich in een zeer vroege laadfase bevindt, wanneer de runtime van de algemene taal een afsluitende assembly-verwijzing uitvoert.

Syntaxis

HRESULT GetAssemblyReferences(        [in, string] const WCHAR* wszAssemblyPath,  
        [in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider  
);  

Parameters

wszAssemblyPath
[in] Het pad en de naam van de assembly waarvan de metagegevens worden gewijzigd.

pAsmRefProvider
[in] Een aanwijzer naar het adres van een ICorProfilerAssemblyReferenceProvider-interface die de assemblyverwijzingen aangeeft die moeten worden toegevoegd.

Retourwaarde

Retourwaarden van deze callback worden genegeerd.

Opmerkingen

Deze callback wordt beheerd door de vlag COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES gebeurtenismasker in te stellen bij het aanroepen van de methode ICorProfilerCallback5::SetEventMask2 . Als de profiler zich registreert voor de callbackmethode ICorProfilerCallback6::GetAssemblyReferences , geeft de runtime het pad en de naam van de te laden assembly, samen met een pointer, door aan een ICorProfilerAssemblyReferenceProvider-interfaceobject door aan die methode. De profiler kan vervolgens de methode ICorProfilerAssemblyReferenceProvider::AddAssemblyReference aanroepen met een COR_PRF_ASSEMBLY_REFERENCE_INFO object voor elke doelassembly waarnaar wordt verwezen vanuit de assembly die is opgegeven in de GetAssemblyReferences callback.

Gebruik de GetAssemblyReferences callback alleen als de profiler de metagegevens van een assembly moet wijzigen om assemblyverwijzingen toe te voegen. (Houd er echter rekening mee dat de werkelijke wijziging van de metagegevens van een assembly wordt uitgevoerd in de callbackmethode ICorProfilerCallback::ModuleLoadFinished.) De profiler moet de GetAssemblyReferences callback-methode implementeren om de COMMON Language Runtime (CLR) te informeren dat assemblyverwijzingen worden toegevoegd wanneer de module is geladen. Dit helpt ervoor te zorgen dat beslissingen voor het delen van assembly's die door de CLR in deze vroege fase zijn genomen, geldig blijven, hoewel de profiler van plan is de metagegevensassemblyverwijzingen later te wijzigen. Dit kan voorkomen dat wijzigingen in de profiler-metagegevens een SECURITY_E_INCOMPATIBLE_SHARE fout veroorzaken.

De profiler maakt gebruik van het ICorProfilerAssemblyReferenceProvider-object dat door deze methode wordt geleverd om assemblyverwijzingen toe te voegen aan de CLR assembly-verwijzing sluiting walker. Het object ICorProfilerAssemblyReferenceProvider mag alleen worden gebruikt vanuit deze callback. Aanroepen van de methode ICorProfilerAssemblyReferenceProvider::AddAssemblyReference van deze callback resulteren niet in gewijzigde metagegevens, maar alleen in een aangepaste assembly-verwijzingsafsluiting. De profiler moet nog steeds een IMetaDataAssemblyEmit-object gebruiken om expliciet assemblyverwijzingen toe te voegen vanuit de callback ICorProfilerCallback::ModuleLoadFinished voor de verwijzende assembly, zelfs als de GetAssemblyReferences callback wordt geïmplementeerd.

De profiler moet voorbereid zijn op het ontvangen van dubbele aanroepen naar deze callback voor dezelfde assembly en moet identiek reageren op elke dergelijke dubbele aanroep (door dezelfde set ICorProfilerAssemblyReferenceProvider::AddAssemblyReference-aanroepen te maken).

Vereisten

Platforms: Zie Systeemvereisten.

Header: CorProf.idl, CorProf.h

Bibliotheek: CorGuids.lib

.NET Framework versies: beschikbaar sinds 4.5.2

Zie ook