ICorProfilerCallback2-Schnittstelle
Stellt Methoden bereit, mit denen die Common Language Runtime (CLR) einen Codeprofiler benachrichtigt, wenn die abonnierten Ereignisse des Profilers auftreten. Die ICorProfilerCallback2
-Schnittstelle ist eine Erweiterung der ICorProfilerCallback-Schnittstelle. Das heißt, es werden neue Rückrufe bereitgestellt, die in der .NET Framework-Version 2.0 eingeführt wurden.
Hinweis
Jede Methodenimplementierung muss bei Erfolg ein HRESULT mit dem Wert S_OK oder bei einem Fehler E_FAIL zurückgeben. Derzeit ignoriert die CLR das HRESULT, das von jedem Rückruf mit Ausnahme von ICorProfilerCallback::ObjectReferences zurückgegeben wird.
Methoden
Methode | BESCHREIBUNG |
---|---|
FinalizeableObjectQueued-Methode | Benachrichtigt den Codeprofiler, dass ein Objekt mit einem Finalizer zur Ausführung seiner Finalize -Methode in den Finalizerthread eingereiht wurde. |
GarbageCollectionFinished-Methode | Benachrichtigt den Profiler, dass eine Garbage Collection abgeschlossen ist und alle Garbage Collection-Rückrufe dafür erteilt wurden. |
GarbageCollectionStarted-Methode | Benachrichtigt den Codeprofiler, dass eine Garbage Collection gestartet wurde. |
HandleCreated-Methode | Benachrichtigt den Codeprofiler, dass ein Garbage Collection-Handle erstellt wurde. |
HandleDestroyed-Methode | Benachrichtigt den Codeprofiler, dass ein Garbage Collection-Handle zerstört wurde. |
RootReferences2-Methode | Benachrichtigt den Profiler nach erfolgter Garbage Collection über Stammverweise. Diese Methode ist eine Erweiterung der ICorProfilerCallback::RootReferences-Methode. |
SurvivingReferences-Methode | Benachrichtigt den Profiler über Objektverweise, die eine Garbage Collection überstanden haben. |
ThreadNameChanged-Methode | Benachrichtigt den Codeprofiler, dass der Name eines Threads geändert wurde. |
Bemerkungen
Die CLR ruft eine Methode in der Schnittstelle ICorProfilerCallback
(oder ICorProfilerCallback2
) auf, um den Profiler zu benachrichtigen, wenn ein Ereignis eintritt, das der Profiler abonniert hat. Dies ist die primäre Rückrufschnittstelle, über die die CLR mit dem Codeprofiler kommuniziert.
Ein Codeprofiler muss die Methoden der ICorProfilerCallback
-Schnittstelle implementieren. Ab .NET Framework 2.0 muss der Profiler auch die ICorProfilerCallback2
-Methoden implementieren. Jede Methodenimplementierung muss bei Erfolg ein HRESULT mit dem Wert S_OK oder bei einem Fehler E_FAIL zurückgeben. Derzeit ignoriert die CLR das HRESULT, das von jedem Rückruf mit Ausnahme von ICorProfilerCallback::ObjectReferences zurückgegeben wird.
Ein Codeprofiler muss sein COM-Objekt, das die Schnittstellen ICorProfilerCallback
und ICorProfilerCallback2
implementiert, in der Microsoft Windows-Registrierung registrieren. Ein Codeprofiler abonniert die Ereignisse, für die er Benachrichtigungen erhalten möchte, durch Aufrufen von ICorProfilerInfo::SetEventMask. Dies erfolgt in der Regel in der Implementierung von ICorProfilerCallback::Initialize des Profilers. Der Profiler ist dann in der Lage, eine Benachrichtigung von der Runtime zu erhalten, wenn in einem ausgeführten Runtimeprozess ein Ereignis eintreten wird oder gerade eingetreten ist.
Hinweis
Der Profiler registriert ein einzelnes COM-Objekt. Wenn der Profiler auf die .NET Framework-Version 1.0 oder 1.1 abzielt, muss dieses COM-Objekt nur die Methoden von ICorProfilerCallback
implementieren. Wenn auf die .NET Framework-Version 2.0 oder höher abgezielt wird, muss das COM-Objekt auch die Methoden von ICorProfilerCallback2
implementieren.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: CorProf.idl, CorProf.h
Bibliothek: CorGuids.lib
.NET Framework-Versionen: Seit 2.0 verfügbar.