FunctionEnter3WithInfo-funktion
Meddelar profileraren att kontrollen skickas till en funktion och tillhandahåller ett handtag som kan skickas till metoden ICorProfilerInfo3::GetFunctionEnter3Info för att hämta stackramen och funktionsargumenten.
Syntax
void __stdcall FunctionEnter3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parametrar
functionIDOrClientID
[i] Identifieraren för den funktion som kontrollen skickas till.
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 FunctionEnter3WithInfo
meddelar profileraren som funktioner anropas och gör det möjligt för profileraren att använda metoden ICorProfilerInfo3::GetFunctionEnter3Info för att granska argumentvärden. För att få åtkomst till argumentinformation måste COR_PRF_ENABLE_FUNCTION_ARGS
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 FunctionEnter3WithInfo
ä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 FunctionEnter3WithInfo
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 FunctionEnter3WithInfo
den returneras.
Funktionen FunctionEnter3WithInfo
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 2.0