Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Meddelar profileraren att kontrollen skickas till en funktion och ger information om stackramen och funktionsargumenten. Den här funktionen ersätter funktionen FunctionEnter .
Syntax
void __stdcall FunctionEnter2 (
[in] FunctionID funcId,
[in] UINT_PTR clientData,
[in] COR_PRF_FRAME_INFO func,
[in] COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo
);
Parametrar
funcId [i] Identifieraren för den funktion som kontrollen skickas till.
clientData [i] Den ommappade funktionsidentifieraren, som profileraren tidigare angav med funktionen FunctionIDMapper .
func [i] Ett COR_PRF_FRAME_INFO värde som pekar på information om stackramen.
Profileraren bör behandla detta som ett täckande handtag som kan skickas tillbaka till körningsmotorn i metoden ICorProfilerInfo2::GetFunctionInfo2 .
argumentInfo [i] En pekare till en COR_PRF_FUNCTION_ARGUMENT_INFO struktur som anger platserna i minnet för funktionens argument.
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.
Kommentarer
Värdena för parametrarna func och argumentInfo är inte giltiga när FunctionEnter2 funktionen returneras eftersom värdena kan ändras eller förstöras.
Funktionen FunctionEnter2 är en motringning. Du måste implementera den. Implementeringen måste använda attributet __declspec(naked) 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 FunctionEnter2 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 FunctionEnter2 den returneras.
FunctionEnter2 Dessutom får funktionen inte anropa till hanterad kod eller på något sätt orsaka en hanterad minnesallokering.
Krav
Plattformar: Se Systemkrav.
Huvudet: CorProf.idl
Bibliotek: CorGuids.lib
.NET Framework versioner: Tillgänglig sedan 2.0