Freigeben über


ICorProfilerCallback::RootReferences-Methode

Benachrichtigt den Profiler mit Informationen über Stammverweise nach einer Garbage Collection.

HRESULT RootReferences(
    [in] ULONG    cRootRefs,
    [in, size_is(cRootRefs)] ObjectID rootRefIds[] );

Parameter

  • cRootRefs
    [in] Die Anzahl der Verweise im rootRefIds-Array.

  • rootRefIds
    [in] Ein Array von Objekt-IDs, die entweder auf ein statisches Objekt oder auf ein Objekt im Stapel verweisen.

Hinweise

Sowohl RootReferences als auch ICorProfilerCallback2::RootReferences2 werden aufgerufen, um den Profiler zu benachrichtigen. Profiler implementieren gewöhnlich die eine oder die andere Methode, aber nicht beide. Der Grund dafür ist, dass die in RootReferences2 übergebenen Informationen eine Obermenge der in RootReferences übergebenen Informationen sind.

Das rootRefIds-Array kann ein NULL-Objekt enthalten. Alle im Stapel deklarierten Objektverweise werden vom Garbage Collector z. B. als Stämme behandelt und immer gemeldet.

Die von RootReferences zurückgegebenen Objekt-IDs sind während des Rückrufs selbst nicht gültig, weil die Garbage Collection zu diesem Zeitpunkt unter Umständen noch Objekte von alten Adressen an neue Adressen verschiebt. Deshalb dürfen Profiler nicht versuchen, Objekte während eines RootReferences-Aufrufs zu überprüfen. Wenn ICorProfilerCallback2::GarbageCollectionFinished aufgerufen wird, wurden alle Objekte an die neuen Speicherorte verschoben und können sicher überprüft werden.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorProf.idl, CorProf.h

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

ICorProfilerCallback-Schnittstelle