Dela via


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

Se även