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