Partager via


FunctionTailcall3, fonction

Avertit le profileur que la fonction en cours d’exécution est sur le point d’effectuer un appel tail à une autre fonction.

Syntaxe

void __stdcall FunctionTailcall3 (FunctionOrRemappedID functionOrRemappedID);  

Paramètres

functionOrRemappedID [in] Identificateur de la fonction en cours d’exécution qui est sur le point d’effectuer un appel tail.

Notes

La fonction de rappel FunctionTailcall3 notifie le profileur au fur et à mesure que des fonctions sont appelées. Utilisez la méthode ICorProfilerInfo3::SetEnterLeaveFunctionHooks3 pour inscrire votre implémentation de cette fonction.

La fonction FunctionTailcall3 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 FunctionTailcall3 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 FunctionTailcall3 soit retourné.

La fonction FunctionTailcall3 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