Sdílet prostřednictvím


FunctionTailcall – funkce

Upozorní profiler, že aktuálně spuštěná funkce se chystá provést koncové volání jiné funkce.

Poznámka

Funkce FunctionTailcall je v rozhraní .NET Framework verze 2.0 zastaralá. Bude dál fungovat, ale bude mít za následek snížení výkonu. Místo toho použijte funkci FunctionTailcall2 .

Syntaxe

void __stdcall FunctionTailcall (  
    [in] FunctionID funcID  
);  

Parametry

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

Poznámky

Cílová funkce koncového volání použije aktuální rámec zásobníku a vrátí se přímo volajícímu funkce, která provedla koncové volání. To znamená, že zpětné volání FunctionLeave nebude vydáno pro funkci, která je cílem koncového volání.

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

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 FunctionTailcall nástroje by neměla být blokovaná, 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 FunctionTailcall se nevrátí.

FunctionTailcall Funkce 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: 1.1, 1.0

Viz také