Dela via


FunctionTailcall3-funktion

Meddelar profileraren att funktionen som körs just nu är på väg att utföra ett tail-anrop till en annan funktion.

Syntax

void __stdcall FunctionTailcall3 (FunctionOrRemappedID functionOrRemappedID);  

Parametrar

functionOrRemappedID [i] Identifieraren för den funktion som körs just nu och som håller på att göra ett tail-anrop.

Kommentarer

Återanropsfunktionen FunctionTailcall3 meddelar profileraren när funktioner anropas. Använd metoden ICorProfilerInfo3::SetEnterLeaveFunctionHooks3 för att registrera implementeringen av den här funktionen.

Funktionen FunctionTailcall3 är en motringning. Du måste implementera den. Implementeringen måste använda __declspec(naked) attributet storage-class.

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

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

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

Implementeringen av FunctionTailcall3 bör inte blockeras, 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 skräpinsamlingsvänligt tillstånd. Om en skräpinsamling görs blockeras körningen tills FunctionTailcall3 den returneras.

Funktionen FunctionTailcall3 får inte 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 4

Se även