Compartir a través de


ICorProfilerInfo2::GetClassIDInfo2 (Método)

Obtiene el módulo primario y el token de metadatos de la clase genérica especificada, el valor de ClassID de su clase primaria y el valor de ClassID para cada argumento de tipo, si lo hay, de la clase.

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

Parámetros

  • classId
    [in] Identificador de la clase para la que se va a recuperar información.

  • pModuleId
    [out] Puntero al identificador del módulo primario de la clase.

  • pTypeDefToken
    [out] Puntero al símbolo (token) de metadatos de la clase.

  • pParentClassId
    [out] Puntero al identificador de la clase primaria.

  • cNumTypeArgs
    [in] Tamaño de la matriz de typeArgs.

  • pcNumTypeArgs
    [out] Puntero al número total de elementos disponibles.

  • typeArgs
    [out] Matriz de valores ClassID, cada uno de los cuales representa el identificador de un argumento de tipo de la clase. Cuando el método devuelve un resultado, typeArgs contendrá algunos o todos los valores de ClassID disponibles.

Comentarios

El método GetClassIDInfo2 es similar al método de ICorProfilerInfo::GetClassIDInfo, pero GetClassIDInfo2 obtiene información adicional sobre un tipo genérico.

El código del generador de perfiles puede llamar a ICorProfilerInfo::GetModuleMetaData para obtener una interfaz de metadatos para un módulo determinado. El símbolo (token) de metadatos que se devuelve a la ubicación a la que hace referencia pTypeDefToken puede utilizarse a continuación para obtener acceso a los metadatos de la clase.

Después de que GetClassIDInfo2 devuelva un resultado, debe comprobar que el búfer de typeArgs era suficientemente grande para contener todos los valores de ClassID. Para ello, compare el valor al que señala pcNumTypeArgs con el valor del parámetro cNumTypeArgs. Si pcNumTypeArgs señala a un valor mayor que cNumTypeArgs, asigne un búfer de typeArgs mayor, actualice cNumTypeArgs con el nuevo tamaño superior y llame de nuevo a GetClassIDInfo2.

Otra opción es llamar primero a GetClassIDInfo2 con un búfer de typeArgs de longitud cero para obtener el tamaño de búfer correcto. Después, puede establecer el tamaño del búfer de typeArgs en el valor devuelto en pcNumTypeArgs y llamar de nuevo a GetClassIDInfo2.

Para obtener más información sobre estos dos enfoques, vea Convenciones de los métodos de la API de generación de perfiles.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICorProfilerInfo (Interfaz)

ICorProfilerInfo2 (Interfaz)

Otros recursos

Interfaces para generación de perfiles

Generación de perfiles (Referencia de la API no administrada)