Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Obtient la classe parente, le jeton de métadonnées et l’argument ClassID de chaque type, le cas échéant, d’une fonction.
Syntax
HRESULT GetFunctionInfo2(
[in] FunctionID funcId,
[in] COR_PRF_FRAME_INFO frameInfo,
[out] ClassID *pClassId,
[out] ModuleID *pModuleId,
[out] mdToken *pToken,
[in] ULONG32 cTypeArgs,
[out] ULONG32 *pcTypeArgs,
[out] ClassID typeArgs[]);
Parameters
funcId [in] ID de la fonction pour laquelle obtenir la classe parente et d’autres informations.
frameInfo [in] Valeur COR_PRF_FRAME_INFO qui pointe vers des informations sur un cadre de pile.
pClassId [out] Pointeur vers la classe parente de la fonction.
pModuleId [out] Pointeur vers le module dans lequel la classe parente de la fonction est définie.
pToken [out] Pointeur vers le jeton de métadonnées de la fonction.
cTypeArgs [in] Taille du typeArgs tableau.
pcTypeArgs [out] Pointeur vers le nombre total de ClassID valeurs.
typeArgs [out] Tableau de ClassID valeurs, chacun étant l’ID d’un argument de type de la fonction. Lorsque la méthode est retournée, typeArgs contient une partie ou l’ensemble des ClassID valeurs.
Remarks
Le code du profileur peut appeler ICorProfilerInfo ::GetModuleMetaData pour obtenir une interface de métadonnées pour un module donné. Le jeton de métadonnées retourné à l’emplacement référencé peut pToken ensuite être utilisé pour accéder aux métadonnées de la fonction.
L’ID de classe et les arguments de type retournés par le biais des pClassIdtypeArgs paramètres et dépendent de la valeur passée dans le frameInfo paramètre, comme indiqué dans le tableau suivant.
Valeur du paramètre frameInfo. |
Result |
|---|---|
Valeur COR_PRF_FRAME_INFO obtenue à partir d’un FunctionEnter2 rappel |
Le ClassID, retourné à l’emplacement référencé par pClassId, et tous les arguments de type, retournés dans le typeArgs tableau, seront exacts. |
Obtenu COR_PRF_FRAME_INFO à partir d’une source autre qu’un FunctionEnter2 rappel |
Les arguments exacts ClassID et de type ne peuvent pas être déterminés. Autrement dit, la ClassID valeur peut être null et certains arguments de type peuvent revenir en arrière.Object |
| Zero | Les arguments exacts ClassID et de type ne peuvent pas être déterminés. Autrement dit, la ClassID valeur peut être null et certains arguments de type peuvent revenir en arrière.Object |
Une fois GetFunctionInfo2 retourné, vous devez vérifier que la typeArgs mémoire tampon était suffisamment grande pour contenir toutes les ClassID valeurs. Pour ce faire, comparez la valeur qui pcTypeArgs pointe vers la valeur du cTypeArgs paramètre. Si pcTypeArgs elle pointe vers une valeur supérieure cTypeArgs à celle divisée par la taille d’une ClassID valeur, allouez une mémoire tampon plus grande pcTypeArgs , mettez à jour cTypeArgs avec la nouvelle, plus grande taille et appelez GetFunctionInfo2 à nouveau.
Vous pouvez également d’abord appeler GetFunctionInfo2 avec une mémoire tampon de longueur pcTypeArgs nulle pour obtenir la taille correcte de la mémoire tampon. Vous pouvez ensuite définir la taille de la mémoire tampon sur la valeur retournée par pcTypeArgs la taille d’une ClassID valeur, puis appeler GetFunctionInfo2 à nouveau.
Requirements
Plateformes : Consultez Configuration requise.
En-tête: CorProf.idl, CorProf.h
Library: CorGuids.lib
versions du .NET Framework : disponible depuis la version 2.0