Freigeben über


FunctionEnter3WithInfo-Funktion

Benachrichtigt den Profiler, dass der Steuerfluss an eine Funktion übergeben wird, und stellt ein Handle bereit, das an die ICorProfilerInfo3::GetFunctionEnter3Info-Methode übergeben werden kann, um den Stapelframe und die Funktionsargumente abzurufen.

void __stdcall FunctionEnter3WithInfo(
               [in] FunctionIDOrClientID functionIDOrClientID,
               [in] COR_PRF_ELT_INFO eltInfo);

Parameter

  • functionIDOrClientID
    [in] Der Bezeichner der Funktion, an die das Steuerelement übergeben wird.

  • eltInfo
    [in] Ein nicht transparentes Handle, das Informationen zu einem angegebenen Stapelrahmen darstellt. Dieses Handle ist nur während des Rückrufs, an den es übergeben wird, gültig.

Hinweise

Die FunctionEnter3WithInfo-Rückrufmethode benachrichtigt den Profiler, wenn Funktionen aufgerufen werden, und ermöglicht es dem Profiler, die ICorProfilerInfo3::GetFunctionEnter3Info-Methode zu verwenden, um die Argumentwerte zu überprüfen. Um auf Informationen über Argumente zuzugreifen, muss das COR_PRF_ENABLE_FUNCTION_ARGS-Flag festgelegt werden. Der Profiler kann die Ereignisflags mithilfe der ICorProfilerInfo::SetEventMask-Methode festlegen und verwendet dann die ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo-Methode, um die Implementierung dieser Funktion zu registrieren.

Die FunctionEnter3WithInfo-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 FunctionEnter3WithInfo 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 FunctionEnter3WithInfo zurückkehrt.

Die FunctionEnter3WithInfo-Funktion darf keinen verwalteten Code aufrufen und auf keine Weise verwalteten Speicher belegen.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorProf.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

GetFunctionEnter3Info

FunctionEnter3

FunctionLeave3

Weitere Ressourcen

Profilerstellung für globale statische Funktionen

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Oktober 2010

__stdcall zur Syntax hinzugefügt.

Kundenfeedback.