Dela via


Funktionen FunctionLeave3WithInfo

Meddelar profileraren att kontrollen returneras från en funktion och tillhandahåller ett handtag som kan skickas till metoden ICorProfilerInfo3::GetFunctionLeave3Info för att hämta stackramen och returvärdet.

Syntax

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

Parametrar

functionIDOrClientID [i] Identifieraren för funktionen som kontrollen returneras från.

eltInfo [i] Ett täckande handtag som representerar information om en viss stackram. Det här handtaget är endast giltigt under återanropet som det skickas till.

Kommentarer

Motringningsmetoden FunctionLeave3WithInfo meddelar profileraren som funktioner anropas och tillåter profileraren att använda metoden ICorProfilerInfo3::GetFunctionLeave3Info för att inspektera returvärdet. För att få åtkomst till returvärdesinformation måste COR_PRF_ENABLE_FUNCTION_RETVAL flaggan anges. 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 FunctionLeave3WithInfo ä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 FunctionLeave3WithInfo 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 FunctionLeave3WithInfo den returneras.

Funktionen FunctionLeave3WithInfo 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