Dela via


FunctionTailcall3WithInfo- funktion

Meddelar profileraren att den funktion som körs just nu är på väg att utföra ett slutanrop till en annan funktion och tillhandahåller ett handtag som kan skickas till metoden ICorProfilerInfo3::GetFunctionTailcall3Info för att hämta stackramen.

Syntax

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

Parametrar

functionIDOrClientID [in] Identifieraren för den funktion som körs just nu och som håller på att göra ett avslutande anrop.

eltInfo [in] Ett täckande handtag som representerar information om en viss stackram. Den här referensen är endast giltig under återanropet som det skickas till.

Kommentarer

Motringningsmetoden FunctionTailcall3WithInfo meddelar profileraren när funktioner anropas och gör att profileraren kan använda metoden ICorProfilerInfo3::GetFunctionTailcall3Info för att inspektera stackramen. Flaggan måste anges för att få åtkomst till information om stackramen COR_PRF_ENABLE_FRAME_INFO . Profileraren kan använda metoden ICorProfilerInfo::SetEventMask för att ange händelseflaggor och sedan använda metoden ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo för att registrera implementeringen av den här funktionen.

Funktionen FunctionTailcall3WithInfo är ett återanrop. Du måste implementera den. Implementeringen måste använda attributet __declspec(naked) storage-class.

Körningsmotorn sparar inga register innan den anropar den här funktionen.

  • Vid inmatning måste du spara alla register som du använder, inklusive de som finns i flyttalsenheten (FPU).

  • Vid avslut måste du återställa stacken genom att ta bort alla parametrar som push-överfördes av anroparen.

Implementeringen av FunctionTailcall3WithInfo bör inte blockera eftersom det fördröjer skräpinsamlingen. Implementeringen bör inte försöka med en skräpinsamling eftersom stacken kanske inte är i ett eget skräpinsamlingsvänligt tillstånd. Om en skräpinsamling görs blockeras körningen tills FunctionTailcall3WithInfo den returneras.

Funktionen FunctionTailcall3WithInfo får inte heller anropa hanterad kod eller orsaka en hanterad minnesallokering på något sätt.

Krav

Plattformar: Se Systemkrav.

Huvudet: CorProf.idl

Bibliotek: CorGuids.lib

.NET Framework versioner: Tillgänglig sedan 2.0

Se även