Compartir por


ICorProfilerInfo2::GetFunctionInfo2 Method

Obtiene la clase primaria, el token de metadatos y el ClassID de cada argumento de tipo, si está presente, de una función.

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] Identificador de la función para la que se va a obtener la clase primaria y otra información.

frameInfo [in] Valor COR_PRF_FRAME_INFO que apunta a información sobre un marco de pila.

pClassId [out] Puntero a la clase primaria de la función.

pModuleId [out] Puntero al módulo en el que se define la clase primaria de la función.

pToken [out] Puntero al token de metadatos de la función.

cTypeArgs [in] Tamaño de la typeArgs matriz.

pcTypeArgs [out] Puntero al número total de ClassID valores.

typeArgs [out] Matriz de ClassID valores, cada uno de los cuales es el identificador de un argumento de tipo de la función. Cuando el método vuelva, typeArgs contendrá algunos o todos los ClassID valores.

Remarks

El código del generador de perfiles puede llamar a ICorProfilerInfo::GetModuleMetaData para obtener una interfaz de metadatos para un módulo determinado. El token de metadatos que se devuelve a la ubicación a pToken la que hace referencia se puede usar para tener acceso a los metadatos de la función.

El identificador de clase y los argumentos de tipo que se devuelven a través de los pClassId parámetros y typeArgs dependen del valor que se pasa en el frameInfo parámetro , como se muestra en la tabla siguiente.

Valor del parámetro frameInfo Result
Valor COR_PRF_FRAME_INFO obtenido de una FunctionEnter2 devolución de llamada El ClassID, devuelto en la ubicación a la que hace pClassIdreferencia y todos los argumentos de tipo, devueltos en la typeArgs matriz, serán exactos.
que COR_PRF_FRAME_INFO se obtuvo de un origen distinto de una FunctionEnter2 devolución de llamada No se pueden determinar los argumentos exactos ClassID y de tipo. Es decir, ClassID podría ser null y algunos argumentos de tipo podrían volver como Object.
Zero No se pueden determinar los argumentos exactos ClassID y de tipo. Es decir, ClassID podría ser null y algunos argumentos de tipo podrían volver como Object.

Después GetFunctionInfo2 de la devolución, debe comprobar que el typeArgs búfer era lo suficientemente grande como para contener todos los ClassID valores. Para ello, compare el valor al que pcTypeArgs apunta con el valor del cTypeArgs parámetro . Si pcTypeArgs apunta a un valor mayor que cTypeArgs dividido por el tamaño de un ClassID valor, asigne un búfer mayor pcTypeArgs , actualice cTypeArgs con el nuevo tamaño, mayor y vuelva a llamar a GetFunctionInfo2 .

Como alternativa, puede llamar GetFunctionInfo2 primero con un búfer de longitud pcTypeArgs cero para obtener el tamaño correcto del búfer. A continuación, puede establecer el tamaño del búfer en el valor devuelto en pcTypeArgs dividido por el tamaño de un ClassID valor y volver a llamar a GetFunctionInfo2 .

Requirements

Plataformas: Vea Requisitos de sistema.

Encabezado: CorProf.idl, CorProf.h

Library: CorGuids.lib

versiones de .NET Framework: disponible desde la versión 2.0

See also