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