Sdílet prostřednictvím


FunctionLeave3WithInfo – funkce

Upozorní profiler, že ovládací prvek je vrácen z funkce, a poskytuje popisovač, který lze předat ICorProfilerInfo3::GetFunctionLeave3Info metoda pro načtení zásobníku rámce a návratové hodnoty.

Syntaxe

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

Parametry

functionIDOrClientID [v] Identifikátor funkce, ze které je vrácen ovládací prvek.

eltInfo [v] Neprůshlený popisovač, který představuje informace o daném rámci zásobníku. Tento popisovač je platný pouze během zpětného volání, do kterého se předává.

Poznámky

Metoda FunctionLeave3WithInfo zpětného volání upozorní profiler, protože funkce jsou volány, a umožňuje profileru použít ICorProfilerInfo3::GetFunctionLeave3Info metodu ke kontrole návratové hodnoty. Pokud chcete získat přístup k informacím o návratové hodnotě COR_PRF_ENABLE_FUNCTION_RETVAL , je potřeba nastavit příznak. Profiler může použít ICorProfilerInfo::SetEventMask metoda nastavit příznaky událostí a pak použít ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo metodu zaregistrovat implementaci této funkce.

Funkce FunctionLeave3WithInfo je zpětné volání. Musíte ji implementovat. Implementace musí používat __declspec(naked) atribut třídy úložiště.

Spouštěcí modul neukládá žádné registry před voláním této funkce.

  • Při zadání musíte uložit všechny registry, které používáte, včetně těch v jednotce s plovoucí desetinou čárkou (FPU).

  • Při ukončení musíte zásobník obnovit tak, že vysunete všechny parametry, které volající nasdílel.

Implementace FunctionLeave3WithInfo by neměla blokovat, protože zpozdí uvolňování paměti. Implementace by se neměla pokoušet o uvolňování paměti, protože zásobník nemusí být ve stavu, který je vhodný pro uvolňování paměti. Pokud se pokusíte o uvolnění paměti, modul runtime se zablokuje, dokud FunctionLeave3WithInfo se nevrátí.

Funkce FunctionLeave3WithInfo nesmí volat spravovaný kód ani žádným způsobem způsobit přidělení spravované paměti.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: CorProf.idl

Knihovny: CorGuids.lib

Verze rozhraní .NET Framework: K dispozici od 4

Viz také