Freigeben über


FunctionLeave-Funktion

Benachrichtigt den Profiler, dass eine Funktion im Begriff ist, zum Aufrufer zurückzukehren.

Hinweis

Die FunctionLeave-Funktion ist in .NET Framework 2.0 veraltet. Sie funktioniert weiterhin, verursacht aber Leistungseinbußen. Verwenden Sie stattdessen die Funktion FunctionLeave2.

Syntax

void __stdcall FunctionLeave (  
    [in] FunctionID funcID  
);  

Parameter

funcID: [in] Der Bezeichner der Funktion, die zurückgegeben wird.

Bemerkungen

Die FunctionLeave-Funktion ist ein Rückruf; Sie müssen sie implementieren. Die Implementierung muss das Speicherklassenattribut __declspec(naked) verwenden.

Die Ausführungs-Engine speichert keine Register, bevor diese Funktion aufgerufen wird.

  • Beim Eingang müssen Sie alle Register speichern, die Sie verwenden, einschließlich der Register in der Gleitkommaeinheit (Floating-Point Unit, FPU).

  • Beim Beenden müssen Sie den Stapel wiederherstellen, indem Sie alle Parameter deaktivieren, die vom Aufrufer gepusht wurden.

Die Implementierung von FunctionLeave darf nicht blockieren, da dadurch die Garbage Collection verzögert wird. Die Implementierung darf keine Garbage Collection versuchen, da sich der Stapel möglicherweise nicht in einem für eine Garbage Collection geeigneten Zustand befindet. Wenn eine Garbage Collection versucht wird, blockiert die Runtime, bis FunctionLeave zurückgegeben wird.

Die FunctionLeave-Funktion darf zudem keinen verwalteten Code aufrufen oder in irgendeiner Weise eine verwaltete Arbeitsspeicherzuteilung verursachen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorProf.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 1.1, 1.0

Siehe auch