Udostępnij za pośrednictwem


FunctionEnter3WithInfo — Funkcja

Powiadamia profilera, że kontrolka jest przekazywana do funkcji i udostępnia dojście, które można przekazać do metody ICorProfilerInfo3::GetFunctionEnter3Info w celu pobrania ramki stosu i argumentów funkcji.

Składnia

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

Parametry

functionIDOrClientID [in] Identyfikator funkcji, do której przekazano kontrolkę.

eltInfo [in] Nieprzezroczysty uchwyt reprezentujący informacje o danej ramce stosu. Ten uchwyt jest prawidłowy tylko podczas wywołania zwrotnego, do którego jest przekazywany.

Uwagi

FunctionEnter3WithInfo Metoda wywołania zwrotnego powiadamia profilera jako wywoływane funkcje i umożliwia profilerowi użycie metody ICorProfilerInfo3::GetFunctionEnter3Info w celu sprawdzenia wartości argumentów. Aby uzyskać dostęp do informacji o argumentach, należy ustawić flagę COR_PRF_ENABLE_FUNCTION_ARGS . Profiler może użyć metody ICorProfilerInfo::SetEventMask , aby ustawić flagi zdarzeń, a następnie użyć metody ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo , aby zarejestrować implementację tej funkcji.

Funkcja FunctionEnter3WithInfo jest wywołaniem zwrotnym. Należy ją zaimplementować. Implementacja musi używać atrybutu __declspec(naked) klasy magazynu.

Aparat wykonywania nie zapisuje żadnych rejestrów przed wywołaniem tej funkcji.

  • Podczas wprowadzania należy zapisać wszystkie używane rejestry, w tym rejestry w jednostce zmiennoprzecinkowe (FPU).

  • Po zakończeniu należy przywrócić stos przez wyskakujące okienko wszystkich parametrów, które zostały wypchnięte przez jego obiekt wywołujący.

Implementacja elementu FunctionEnter3WithInfo nie powinna blokować, ponieważ spowoduje to opóźnienie odzyskiwania pamięci. Implementacja nie powinna próbować odśmiecać pamięci, ponieważ stos może nie być w stanie przyjaznym dla odzyskiwania pamięci. Jeśli zostanie podjęta próba odzyskiwania pamięci, środowisko uruchomieniowe zostanie zablokowane do momentu FunctionEnter3WithInfo powrotu.

Funkcja FunctionEnter3WithInfo nie może wywołać kodu zarządzanego ani w żaden sposób spowodować alokację pamięci zarządzanej.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorProf.idl

Biblioteki: CorGuids.lib

wersje .NET Framework: dostępne od wersji 2.0

Zobacz też