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