FunctieLeave3WithInfo, functie
De profiler meldt dat het besturingselement wordt geretourneerd door een functie en biedt een ingang die kan worden doorgegeven aan de methode ICorProfilerInfo3::GetFunctionLeave3Info om het stackframe en de retourwaarde op te halen.
Syntaxis
void __stdcall FunctionLeave3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parameters
functionIDOrClientID
[in] De id van de functie waaruit het besturingselement wordt geretourneerd.
eltInfo
[in] Een ondoorzichtige greep die informatie vertegenwoordigt over een bepaald stapelframe. Deze ingang is alleen geldig tijdens de callback waarnaar deze wordt doorgegeven.
Opmerkingen
De FunctionLeave3WithInfo
callbackmethode meldt de profiler wanneer functies worden aangeroepen en staat de profiler toe om de methode ICorProfilerInfo3::GetFunctionLeave3Info te gebruiken om de retourwaarde te inspecteren. Voor toegang tot retourwaardegegevens moet de COR_PRF_ENABLE_FUNCTION_RETVAL
vlag worden ingesteld. De profiler kan de methode ICorProfilerInfo::SetEventMask gebruiken om de gebeurtenisvlaggen in te stellen en vervolgens de methode ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo gebruiken om uw implementatie van deze functie te registreren.
De FunctionLeave3WithInfo
functie is een callback. U moet deze implementeren. De implementatie moet het __declspec(naked)
kenmerk storage-class gebruiken.
De uitvoeringsengine slaat geen registers op voordat deze functie wordt aangeroepen.
Bij invoer moet u alle registers opslaan die u gebruikt, inclusief de registers in de drijvende-kommaeenheid (FPU).
Bij het afsluiten moet u de stack herstellen door alle parameters uit te schakelen die door de aanroeper zijn gepusht.
De implementatie van FunctionLeave3WithInfo
mag niet blokkeren, omdat dit de garbagecollection vertraagt. De implementatie mag geen garbagecollection uitvoeren, omdat de stack mogelijk niet geschikt is voor garbagecollection. Als een garbagecollection wordt geprobeerd, wordt de runtime geblokkeerd totdat FunctionLeave3WithInfo
deze wordt geretourneerd.
De FunctionLeave3WithInfo
functie mag beheerde code niet aanroepen en op geen enkele manier een toewijzing van beheerd geheugen veroorzaken.
Vereisten
Platforms: Zie Systeemvereisten.
Header: CorProf.idl
Bibliotheek: CorGuids.lib
.NET Framework versies: beschikbaar sinds 4