Delen via


Methode ICorProfilerCallback2::RootReferences2

Hiermee wordt de profiler op de hoogte gebracht van hoofdverwijzingen nadat er een garbagecollection is opgetreden. Deze methode is een uitbreiding van de methode ICorProfilerCallback::RootReferences .

Syntaxis

HRESULT RootReferences2(  
    [in] ULONG  cRootRefs,  
    [in, size_is(cRootRefs)] ObjectID rootRefIds[],  
    [in, size_is(cRootRefs)] COR_PRF_GC_ROOT_KIND rootKinds[],  
    [in, size_is(cRootRefs)] COR_PRF_GC_ROOT_FLAGS rootFlags[],  
    [in, size_is(cRootRefs)] UINT_PTR rootIds[]);  

Parameters

cRootRefs
[in] Het aantal elementen in de rootRefIdsmatrices , rootKindsrootFlags, enrootIds.

rootRefIds
[in] Een matrix met object-id's, die elk verwijzen naar een statisch object of een object op de stapel. Elementen in de rootKinds matrix bieden informatie voor het classificeren van overeenkomende elementen in de rootRefIds matrix.

rootKinds
[in] Een matrix met COR_PRF_GC_ROOT_KIND waarden die het type van de hoofdmap van de garbagecollection aangeven.

rootFlags
[in] Een matrix met COR_PRF_GC_ROOT_FLAGS waarden die de eigenschappen van de hoofdmap van een garbagecollection beschrijven.

rootIds
[in] Een matrix met UINT_PTR waarden die verwijzen naar een geheel getal dat aanvullende informatie bevat over de hoofdmap van de garbagecollection, afhankelijk van de waarde van de rootKinds parameter.

Als het type van de hoofdmap een stack is, is de hoofd-id voor de functie die de variabele bevat. Als deze hoofd-id 0 is, is de functie een naamloze functie die intern is voor de CLR. Als het type van de hoofdmap een ingang is, is de hoofd-id voor de garbagecollection-ingang. Voor de andere hoofdtypen is de id een ondoorzichtige waarde en moet deze worden genegeerd.

Opmerkingen

De rootRefIdsmatrices , rootKinds, rootFlagsen rootIds zijn parallelle matrices. Dat wil gezegd, rootRefIds[i]rootKinds[i], rootFlags[i]en rootIds[i] hebben allemaal betrekking op dezelfde hoofdmap.

Zowel als RootReferencesRootReferences2 worden aangeroepen om de profiler op de hoogte te stellen. Profilers implementeren normaal gesproken de ene methode of de andere, maar niet beide, omdat de doorgegeven RootReferences2 informatie een superset is van de doorgegeven in RootReferences.

Het is mogelijk dat vermeldingen in rootRefIds nul zijn, wat betekent dat de bijbehorende hoofdverwijzing null is en niet verwijst naar een object op de beheerde heap.

De object-id's die door RootReferences2 worden geretourneerd, zijn niet geldig tijdens het terugbellen zelf, omdat de garbagecollection mogelijk bezig is met het verplaatsen van objecten van oude adressen naar nieuwe adressen. Daarom mogen profilers geen objecten inspecteren tijdens een RootReferences2 aanroep. Wanneer ICorProfilerCallback2::GarbageCollectionFinished wordt aangeroepen, zijn alle objecten verplaatst naar hun nieuwe locaties en kunnen ze veilig worden geïnspecteerd.

Vereisten

Platforms: Zie Systeemvereisten.

Header: CorProf.idl, CorProf.h

Bibliotheek: CorGuids.lib

.NET Framework versies: beschikbaar sinds 2.0

Zie ook