Partager via


FunctionLeave3WithInfo, fonction

Notifie le profileur que le contrôle est retourné à partir d’une fonction et fournit un handle qui peut être passé à la méthode ICorProfilerInfo3::GetFunctionLeave3Info pour récupérer le frame de pile et la valeur renvoyée.

Syntaxe

void __stdcall FunctionLeave3WithInfo(  
               [in] FunctionIDOrClientID functionIDOrClientID,  
               [in] COR_PRF_ELT_INFO eltInfo);  

Paramètres

functionIDOrClientID [in] Identificateur de la fonction à partir de laquelle le contrôle est retourné.

eltInfo[in] Handle opaque qui représente des informations sur un frame de pile donné. Il est valide seulement pendant le rappel auquel il est passé.

Notes

La méthode de rappel FunctionLeave3WithInfo notifie le profileur à mesure que les fonctions sont appelées et permet au profileur d’utiliser la méthode ICorProfilerInfo3::GetFunctionLeave3Info pour inspecter la valeur renvoyée. Pour accéder aux informations de la valeur renvoyée, l’indicateur COR_PRF_ENABLE_FUNCTION_RETVAL doit être défini. Le profileur peut utiliser la méthode ICorProfilerInfo::SetEventMask pour définir les indicateurs d’événement, puis utiliser la méthode ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo pour inscrire votre implémentation de cette fonction.

La fonction FunctionLeave3WithInfo est un rappel ; vous devez l’implémenter. L’implémentation doit utiliser l’attribut __declspec(naked) de classe de stockage.

Le moteur d’exécution n’enregistre aucun registre avant d’appeler cette fonction.

  • Lors de l’entrée, vous devez enregistrer tous les registres que vous utilisez, y compris ceux de l’unité à virgule flottante (FPU).

  • Lors de la sortie, vous devez restaurer la pile en décochant tous les paramètres qui ont été envoyés par son appelant.

L’implémentation de FunctionLeave3WithInfo ne doit pas bloquer, car elle retardera le nettoyage de la mémoire. L’implémentation ne doit pas tenter un nettoyage de la mémoire, car la pile peut ne pas être dans un état convivial de nettoyage de la mémoire. Si un garbage collection est tenté, le runtime bloque jusqu’à ce que FunctionLeave3WithInfo soit retourné.

La fonction FunctionLeave3WithInfo ne doit absolument pas appeler de code managé ni entraîner une allocation de mémoire managée.

Spécifications

Plateformes : Consultez Configuration requise.

Header: CorProf.idl

Bibliothèque : CorGuids.lib

Versions de .NET Framework : Disponible depuis la version 4

Voir aussi