FunctionLeave-Funktion
Aktualisiert: November 2007
Benachrichtigt den Profiler, dass eine Funktion im Begriff ist, zum Aufrufer zurückzukehren.
Tipp
Die FunctionLeave-Funktion ist in .NET Framework 2.0 veraltet. Sie kann zwar weiter verwendet werden, es kommt jedoch zu Leistungseinbußen. Verwenden Sie stattdessen die FunctionLeave2-Funktion.
void FunctionLeave (
[in] FunctionID funcID
);
Parameter
- funcID
[in] Der Bezeichner der Funktion, die zurückkehrt.
Hinweise
Die FunctionLeave-Funktion ist ein Rückruf; Sie müssen sie implementieren. Die Implementierung muss das __declspec(naked)-Speicherklassenattribut verwenden.
Das Ausführungsmodul speichert vor dem Aufrufen dieser Funktion keine Register.
Beim Eintritt müssen Sie alle verwendeten Register speichern, auch die Register in der Gleitkommaeinheit (Floating-Point Unit, FPU).
Beim Beenden müssen Sie den Stapel wiederherstellen, indem Sie alle Parameter, die vom Aufrufer verschoben wurden, wieder abholen.
Die Implementierung von FunctionLeave sollte nicht blockieren, da dies die Garbage Collection verzögert. Die Implementierung sollte nicht versuchen, eine Garbage Collection durchzuführen, weil sich der Stapel möglicherweise nicht in einem für die Garbage Collection geeigneten Zustand befindet. Wenn eine Garbage Collection versucht wird, ist die Laufzeit blockiert, bis FunctionLeave zurückkehrt.
Außerdem darf die FunctionLeave-Funktion keinen verwalteten Code aufrufen und keinen verwalteten Speicher reservieren.
Anforderungen
Plattformen: siehe Systemanforderungen für .NET Framework.
Header: CorProf.idl
Bibliothek: CorGuids.lib
.NET Framework-Versionen: 1.1, 1.0
Siehe auch
Referenz
ICorProfilerInfo2::SetEnterLeaveFunctionHooks2-Methode