Método de ICorProfilerInfo2::GetClassLayout
Obtém informações sobre o layout na memória, dos campos definidos pela classe especificada. Ou seja, esse método obtém os deslocamentos de campos da classe.
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parâmetros
classID
[in] A identificação da classe para o qual o layout será recuperado.rFieldOffset
[in, out] Uma matriz de COR_FIELD_OFFSET estruturas, cada qual contendo o tokens e os deslocamentos de campos da classe.cFieldOffset
[in] O tamanho da rFieldOffset matriz.pcFieldOffset
[out] Um ponteiro para o número total de elementos disponíveis. Se cFieldOffset é 0, esse valor indica o número de elementos necessários.pulClassSize
[out] Um ponteiro para um local que contém o tamanho, em bytes, da classe.
Comentários
O GetClassLayout método retorna apenas os campos definidos pela própria classe. Se a classe do pai da classe tiver definido campos bem, o profiler deve chamar GetClassLayout na classe pai para obter esses campos.
Se você usar GetClassLayout com as classes de seqüência de caracteres, o método irá falhar com código de erro E_INVALIDARG. Use ICorProfilerInfo2::GetStringLayout para obter informações sobre o layout de uma seqüência de caracteres. GetClassLayouttambém falhará quando chamado com uma classe de matriz.
Depois de GetClassLayout retorna, você deve verificar se a rFieldOffset buffer era grande o suficiente para conter todas as disponíveis COR_FIELD_OFFSET estruturas. Para fazer isso, compare o valor que pcFieldOffset pontos com o tamanho do rFieldOffset dividido pelo tamanho de um COR_FIELD_OFFSET estrutura. Se rFieldOffset não é grande o suficiente, alocar uma maior rFieldOffset buffer, a atualização cFieldOffset com o novo tamanho maior e a chamada GetClassLayout novamente.
Como alternativa, você pode primeiro chamar GetClassLayout com um comprimento zero rFieldOffset o buffer para obter o tamanho de buffer correto. Além disso, você pode então definir o tamanho do buffer para o valor retornado em pcFieldOffset e chame GetClassLayout 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 ICorProfilerInfo2