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