Freigeben über


FunctionEnter3WithInfo-Funktion

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

Syntax

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 opakes Handle, das Informationen über einen bestimmten Stapelrahmen darstellt. Dieses Handle ist nur gültig während des Rückrufs, an den es übergeben wird.

Bemerkungen

Die Rückrufmethode FunctionEnter3WithInfo benachrichtigt den Profiler, wenn Funktionen aufgerufen werden, und ermöglicht ihm, die ICorProfilerInfo3::GetFunctionEnter3Info-Methode zum Überprüfen von Argumentwerten zu verwenden. Um auf Argumentinformationen zugreifen zu können, muss das Flag COR_PRF_ENABLE_FUNCTION_ARGS festgelegt werden. Der Profiler kann die ICorProfilerInfo::SetEventMask-Methode verwenden, um die Ereignisflags festzulegen, und dann die ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo-Methode verwenden, um Ihre Implementierung dieser Funktion zu registrieren.

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

Die FunctionEnter3WithInfo-Funktion darf keinen verwalteten Code aufrufen oder in irgendeiner Weise eine Zuteilung von verwaltetem Arbeitsspeicher verursachen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: CorProf.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch