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 __declspec
atribut 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