ICorProfilerCallback::ObjectReferences-Methode
Benachrichtigt den Profiler über Objekte im Arbeitsspeicher, auf die das angegebene Objekt verweist.
Syntax
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
Parameter
objectId
[in] Die ID des Objekts, das auf Objekte verweist.
classId
[in] Die ID der Klasse, in der das angegebene Objekt eine Instanz ist.
cObjectRefs
[in] Die Anzahl der Objekte, auf die vom angegebenen Objekt verwiesen wird (d. h. die Anzahl der Elemente im objectRefIds
-Array).
objectRefIds
[in] Ein Array von IDs der Objekte, auf die von objectId
verwiesen wird.
Bemerkungen
Die ObjectReferences
-Methode wird für jedes Objekt aufgerufen, das im Heap verbleibt, nachdem eine Garbage Collection abgeschlossen wurde. Wenn der Profiler aus diesem Rückruf einen Fehler zurückgibt, wird der Aufruf dieses Rückrufs von den Profilerstellungsdiensten bis zur nächsten Garbage Collection eingestellt.
Der ObjectReferences
-Rückruf kann in Verbindung mit dem ICorProfilerCallback::RootReferences-Rückruf verwendet werden, um ein vollständiges Objektverweisdiagramm für die Runtime zu erstellen. Die Common Language Runtime (CLR) stellt sicher, dass jeder Objektverweis nur einmal von der ObjectReferences
-Methode gemeldet wird.
Die von ObjectReferences
zurückgegebenen Objekt-IDs sind während des eigentlichen Rückrufs nicht gültig, da die Garbage Collection zu diesem Zeitpunkt möglicherweise noch Objekte von alten Adressen an neue Adressen verschiebt. Daher dürfen Profiler nicht versuchen, Objekte während eines ObjectReferences
-Aufrufs zu überprüfen. Wenn ICorProfilerCallback2::GarbageCollectionFinished aufgerufen wird, ist die Garbage Collection abgeschlossen, und die Objekte können problemlos überprüft werden.
Eine ClassId
von NULL gibt an, dass die objectId
einen Typ aufweist, der gerade entladen wird.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: CorProf.idl, CorProf.h
Bibliothek: CorGuids.lib
.NET Framework-Versionen: Seit 2.0 verfügbar.