Compartilhar via


Método de ICorProfilerInfo2::GetClassIDInfo2

Obtém o módulo de pai e os metadados token da classe genérica especificada, o ClassID de sua classe pai e o ClassID para cada argumento de tipo, se presente, da classe.

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] A identificação da classe para os quais informações serão recuperadas.

  • pModuleId
    [out] Ponteiro para a identificação do módulo da classe pai.

  • pTypeDefToken
    [out] Ponteiro para o token de metadados para a classe.

  • pParentClassId
    [out] Ponteiro para a identificação da classe pai.

  • cNumTypeArgs
    [in] O tamanho da typeArgs matriz.

  • pcNumTypeArgs
    [out] Ponteiro para o número total de elementos disponíveis.

  • typeArgs
    [out] Uma matriz de ClassID valores, cada um deles representa a identificação de um argumento de tipo de classe a. Quando o método retorna, typeArgs irá conter algumas ou todas as disponíveis ClassID valores.

Comentários

O GetClassIDInfo2 método é semelhante do ICorProfilerInfo::GetClassIDInfo método, mas GetClassIDInfo2 obtém informações adicionais sobre um tipo genérico.

O código do profiler pode chamar ICorProfilerInfo::GetModuleMetaData para obter um metadados interface para um determinado módulo. O token de metadados que é retornado para o local referenciado pelo pTypeDefToken pode ser usado para acessar os metadados para a classe.

Depois de GetClassIDInfo2 retorna, você deve verificar se a typeArgs buffer era grande o suficiente para conter todos os ClassID valores. Para fazer isso, compare o valor que pcNumTypeArgs aponta com o valor de cNumTypeArgs parâmetro. Se pcNumTypeArgs aponta para um valor maior que cNumTypeArgs, alocar uma maior typeArgs buffer, a atualização cNumTypeArgs com o novo tamanho maior e a chamada GetClassIDInfo2 novamente.

Como alternativa, você pode primeiro chamar GetClassIDInfo2 com um comprimento zero typeArgs o buffer para obter o tamanho de buffer correto. Você pode então definir a typeArgs tamanho do buffer para o valor retornado em pcNumTypeArgs e chame GetClassIDInfo2 novamente.

Para obter mais informações sobre essas duas abordagens, consulte Convenções de método de API de criação de perfil.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: Corprof. idl, CorProf.h

Biblioteca: CorGuids.lib

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface de ICorProfilerInfo

Interface de ICorProfilerInfo2

Outros recursos

Interfaces de criação de perfil

A criação de perfil (referência de API não gerenciada)