Freigeben über


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.

Siehe auch