Delen via


FunctieTailcall3WithInfo, functie

De profiler meldt dat de momenteel uitgevoerde functie op het punt staat om een tail-aanroep naar een andere functie uit te voeren en biedt een ingang die kan worden doorgegeven aan de methode ICorProfilerInfo3::GetFunctionTailcall3Info om het stackframe op te halen.

Syntaxis

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

Parameters

functionIDOrClientID [in] De id van de momenteel uitgevoerde functie die op het punt staat een tail-aanroep te doen.

eltInfo [in] Een ondoorzichtige greep die informatie vertegenwoordigt over een bepaald stapelframe. Deze ingang is alleen geldig tijdens de callback waarnaar deze wordt doorgegeven.

Opmerkingen

Met FunctionTailcall3WithInfo de callback-methode wordt de profiler gewaarschuwd wanneer functies worden aangeroepen en kan de profiler de methode ICorProfilerInfo3::GetFunctionTailcall3Info gebruiken om het stackframe te inspecteren. Voor toegang tot stackframegegevens moet de COR_PRF_ENABLE_FRAME_INFO vlag worden ingesteld. De profiler kan de methode ICorProfilerInfo::SetEventMask gebruiken om de gebeurtenisvlaggen in te stellen en vervolgens de methode ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo gebruiken om uw implementatie van deze functie te registreren.

De FunctionTailcall3WithInfo functie is een callback. U moet deze implementeren. De implementatie moet het __declspec(naked) kenmerk storage-class gebruiken.

De uitvoeringsengine slaat geen registers op voordat deze functie wordt aangeroepen.

  • Bij invoer moet u alle registers opslaan die u gebruikt, inclusief de registers in de drijvende-kommaeenheid (FPU).

  • Bij het afsluiten moet u de stack herstellen door alle parameters uit te schakelen die door de aanroeper zijn gepusht.

De implementatie van FunctionTailcall3WithInfo mag niet blokkeren, omdat dit de garbagecollection vertraagt. De implementatie mag geen garbagecollection uitvoeren, omdat de stack mogelijk niet geschikt is voor garbagecollection. Als een garbagecollection wordt geprobeerd, wordt de runtime geblokkeerd totdat FunctionTailcall3WithInfo deze wordt geretourneerd.

De functie FunctionTailcall3WithInfo mag ook niet worden aangeroepen in beheerde code en mag op geen enkele manier een toewijzing van beheerd geheugen veroorzaken.

Vereisten

Platforms: Zie Systeemvereisten.

Header: CorProf.idl

Bibliotheek: CorGuids.lib

.NET Framework versies: beschikbaar sinds 2.0

Zie ook