Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Obtém a classe pai, o token de metadados e o ClassID argumento de cada tipo, se presente, de uma função.
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 [em] A ID da função para a qual obter a classe pai e outras informações.
frameInfo [em] Um COR_PRF_FRAME_INFO valor que aponta para informações sobre um quadro de pilha.
pClassId [saídas] Um ponteiro para a classe pai da função.
pModuleId [saídas] Um ponteiro para o módulo no qual a classe pai da função é definida.
pToken [saídas] Um ponteiro para o token de metadados para a função.
cTypeArgs [em] O tamanho da typeArgs matriz.
pcTypeArgs [saídas] Um ponteiro para o número total de ClassID valores.
typeArgs [saídas] Uma matriz de ClassID valores, cada um dos quais é a ID de um argumento de tipo da função. Quando o método retorna, typeArgs conterá alguns ou todos os ClassID valores.
Remarks
O código do criador de perfil pode chamar ICorProfilerInfo::GetModuleMetaData para obter uma interface de metadados para um determinado módulo. O token de metadados que é retornado para o local referenciado por pToken pode ser usado para acessar os metadados para a função.
Os argumentos de ID de classe e tipo retornados através dos pClassId parâmetros e typeArgs dependem do valor que é passado no frameInfo parâmetro, conforme mostrado na tabela a seguir.
Valor do frameInfo parâmetro |
Result |
|---|---|
Um COR_PRF_FRAME_INFO valor que foi obtido de um FunctionEnter2 retorno de chamada |
O ClassID, retornado no local referenciado por pClassId, e todos os argumentos type, retornados typeArgs na matriz, serão exatos. |
A COR_PRF_FRAME_INFO que foi obtido de uma fonte diferente de um FunctionEnter2 retorno de chamada |
Os argumentos exato ClassID e de tipo não podem ser determinados. Ou seja, o pode ser nulo e alguns argumentos de ClassID tipo podem voltar como Object. |
| Zero | Os argumentos exato ClassID e de tipo não podem ser determinados. Ou seja, o pode ser nulo e alguns argumentos de ClassID tipo podem voltar como Object. |
Após GetFunctionInfo2 os retornos, você deve verificar se o typeArgs buffer era grande o suficiente para conter todos os ClassID valores. Para fazer isso, compare o valor que pcTypeArgs aponta com o valor do cTypeArgs parâmetro. Se pcTypeArgs apontar para um valor maior do que cTypeArgs dividido pelo tamanho de um ClassID valor, aloque um buffer maior pcTypeArgs , atualize cTypeArgs com o novo tamanho maior e chame GetFunctionInfo2 novamente.
Como alternativa, você pode primeiro chamar GetFunctionInfo2 com um buffer de comprimento pcTypeArgs zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer para o valor retornado dividido pcTypeArgs pelo tamanho de um ClassID valor e chamar GetFunctionInfo2 novamente.
Requirements
Plataformas: Consulte Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Library: CorGuids.lib
Versões do .NET Framework: Disponível desde 2.0