FunctionEnter-Funktion
Benachrichtigt den Profiler, dass die Steuerung an eine Funktion übergeben wird.
Hinweis
Die FunctionEnter
-Funktion ist in .NET Framework Version 2.0 veraltet, und ihre Verwendung führt zu Leistungseinbußen. Verwenden Sie stattdessen die Funktion FunctionEnter2.
Syntax
void __stdcall FunctionEnter (
[in] FunctionID funcID
);
Parameter
funcID
[in] Der Bezeichner der Funktion, an die die Steuerung übergeben wird.
Bemerkungen
Die FunctionEnter
-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 Eintrag 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 FunctionEnter
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 FunctionEnter
zurückgegeben wird.
Die FunctionEnter
-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