Sdílet prostřednictvím


FunctionTailcall3WithInfo – funkce

Oznámí profileru, že aktuálně spuštěná funkce se chystá provést koncové volání jiné funkce a poskytuje popisovač, který lze předat ICorProfilerInfo3::GetFunctionTailcall3Info metoda pro načtení rámce zásobníku.

Syntaxe

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

Parametry

functionIDOrClientID [v] Identifikátor aktuálně spuštěné funkce, která se chystá provést koncové volání.

eltInfo [v] Neprůžný 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 je předán.

Poznámky

Metoda FunctionTailcall3WithInfo zpětného volání oznámí profileru, jak jsou volána funkce, a umožňuje profileru použít ICorProfilerInfo3::GetFunctionTailcall3Info metoda pro kontrolu zásobníku rámce. Pokud chcete získat přístup k informacím o rámci zásobníku COR_PRF_ENABLE_FRAME_INFO , musí být nastaven příznak . Profiler může použít ICorProfilerInfo::SetEventMask metoda nastavit příznaky událostí a pak použít ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo metoda zaregistrovat implementaci této funkce.

Funkce FunctionTailcall3WithInfo 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 před voláním této funkce neukládá žádné registry.

  • Při vstupu 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 zobrazíte všechny parametry, které byly vloženy volajícím.

Implementace FunctionTailcall3WithInfo 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 vhodném pro uvolňování paměti. Pokud dojde k pokusu o uvolnění paměti, modul runtime se zablokuje, dokud FunctionTailcall3WithInfo se nevrátí.

Funkce FunctionTailcall3WithInfo také 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 verze 2.0

Viz také