Partager via


ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs, méthode

Obtient le FunctionID d’une fonction à l’aide du jeton de métadonnées spécifié, la classe conteneur et les valeurs ClassID des arguments de type.

Syntaxe

HRESULT GetFunctionFromTokenAndTypeArgs(  
    [in] ModuleID moduleID,  
    [in] mdMethodDef funcDef,  
    [in] ClassID classId,  
    [in] ULONG32 cTypeArgs,  
    [in, size_is(cTypeArgs)] ClassID typeArgs[],  
    [out] FunctionID* pFunctionID);  

Paramètres

moduleID
[in] ID du module où se trouve la fonction.

funcDef
[in] Jeton de métadonnées mdMethodDef qui référence la fonction.

classId
[in] ID de la classe conteneur de la fonction.

cTypeArgs
[in] Nombre de paramètres de type pour la fonction donnée. Cette valeur doit être zéro pour les fonctions non génériques.

typeArgs
[in] Tableau de valeurs ClassID, dont chacune correspond à un argument de la fonction. La valeur de typeArgs peut être NULL si cTypeArgs est défini sur zéro.

pFunctionID
[out] Pointeur vers le FunctionID de la fonction spécifiée.

Notes

L’appel de la méthode GetFunctionFromTokenAndTypeArgs avec des métadonnées mdMethodRef à la place d’un jeton de métadonnées mdMethodDef peut avoir des résultats imprévisibles. Les appelants doivent résoudre mdMethodRef en mdMethodDef quand ils le passent.

Si la fonction n’est pas déjà chargée, l’appel de GetFunctionFromTokenAndTypeArgs entraîne le chargement, qui est une opération dangereuse dans de nombreux contextes. Par exemple, l’appel de cette méthode durant le chargement de modules ou de types peut entraîner une boucle infinie dans la mesure où le runtime tente de charger les éléments de manière circulaire.

En général, l’utilisation de GetFunctionFromTokenAndTypeArgs est déconseillée. Si les profileurs sont intéressés par les événements d’une fonction particulière, ils doivent stocker le ModuleID et le mdMethodDef de cette fonction, et utiliser ICorProfilerInfo2::GetFunctionInfo2 pour vérifier si un FunctionID donné est celui de la fonction souhaitée.

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : CorProf.idl, CorProf.h

Bibliothèque : CorGuids.lib

Versions de .NET Framework : Disponible depuis la version 2.0

Voir aussi