Partager via


ICorProfilerInfo2::GetClassIDInfo2, méthode

Obtient le module parent et le jeton de métadonnées de la classe générique spécifiée, le ClassID de sa classe parente et le ClassID pour chaque argument de type, le cas échéant, de la classe.

HRESULT GetClassIDInfo2(
    [in]  ClassID classId,
    [out] ModuleID *pModuleId,
    [out] mdTypeDef *pTypeDefToken,
    [out] ClassID *pParentClassId,
    [in]  ULONG32 cNumTypeArgs,
    [out] ULONG32 *pcNumTypeArgs,
    [out] ClassID typeArgs[]);

Paramètres

  • classId
    [in] ID de la classe pour laquelle les informations seront récupérées.

  • pModuleId
    [out] Pointeur vers l'ID du module parent de la classe.

  • pTypeDefToken
    [out] Pointeur vers le jeton de métadonnées pour la classe.

  • pParentClassId
    [out] Pointeur vers l'ID de la classe parente.

  • cNumTypeArgs
    [in] Taille du tableau typeArgs.

  • pcNumTypeArgs
    [out] Pointeur vers le nombre total d'éléments disponibles.

  • typeArgs
    [out] Tableau de valeurs ClassID, qui correspondent chacune à l'ID d'un argument de type de la classe. Lorsque la méthode retourne, typeArgs en contiendra une partie ou la totalité des valeurs ClassID disponibles.

Notes

La méthode GetClassIDInfo2 est semblable à la méthode ICorProfilerInfo::GetClassIDInfo, mais GetClassIDInfo2 obtient des informations supplémentaires à propos d'un type générique.

Le profileur de code peut appeler ICorProfilerInfo::GetModuleMetaData pour obtenir une interface metadata pour un module donné. Ensuite, le jeton de métadonnées retourné à l'emplacement référencé par pTypeDefToken peut être utilisé afin d'accéder aux métadonnées pour la classe.

Une fois la valeur de GetClassIDInfo2 retournée, vous devez vérifier que la taille de la mémoire tampon typeArgs était suffisante pour contenir toutes les valeurs ClassID. Pour ce faire, comparez la valeur vers laquelle pcNumTypeArgs pointe à celle du paramètre cNumTypeArgs. Si pcNumTypeArgs pointe vers une valeur supérieure à cNumTypeArgs, allouez une mémoire tampon typeArgs plus grande, mettez à jour cNumTypeArgs avec la nouvelle taille plus grande et appelez de nouveau GetClassIDInfo2.

Vous pouvez également commencer par appeler GetClassIDInfo2 avec une mémoire tampon typeArgs dont la taille est nulle pour obtenir la taille correcte de la mémoire tampon. Vous pouvez ensuite affecter à la taille de la mémoire tampon typeArgs la valeur retournée dans pcNumTypeArgs et appeler de nouveau GetClassIDInfo2.

Pour plus d'informations sur ces deux méthodes, consultez Conventions de méthode de l'API de profilage.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

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

Bibliothèque : CorGuids.lib

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

ICorProfilerInfo, interface

ICorProfilerInfo2, interface

Autres ressources

Interfaces de profilage

Profilage (Référence des API non managées)