Método ICorProfilerInfo2::GetClassLayout
Obtém informações sobre o layout na memória, dos campos definidas 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 ID de classe para o qual o layout será recuperado.rFieldOffset
[in, out] Uma matriz de COR_FIELD_OFFSET estruturas, cada qual contendo tokens e deslocamentos de campos da classe.cFieldOffset
[in] O dimensionar do rFieldOffset matriz.pcFieldOffset
[out] Um ponteiro para o número total de elementos disponível. If cFieldOffset é 0, esse valor indica o número de elementos necessários.pulClassSize
[out] Um ponteiro para um local que contém o dimensionar em bytes, da classe.
Comentários
The GetClassLayout método retornará somente os campos definidos pela classe propriamente dito. Se classe do pai a classe da tiver definido campos também, o criador de perfil 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 falhará, mas os dados que ele retorna só corretos. Use ICorProfilerInfo2::GetStringLayout para obter informações sobre como uma seqüência de caracteres é apresentada. GetClassLayout falhará quando chamado com uma classe de matriz.
Depois de GetClassLayout Retorna, você deve verificar que o rFieldOffset buffer era grande o suficiente para conter todas as disponível COR_FIELD_OFFSET estruturas. Para fazer isso, comparar o valor que pcFieldOffset pontos a com o dimensionar do rFieldOffset dividido pelo dimensionar de um COR_FIELD_OFFSET estrutura. If rFieldOffset não é grande o suficiente, alocar uma maior rFieldOffset buffer, atualização cFieldOffset com a novo e maior dimensionar e telefonar GetClassLayout novamente.
Como alternativa, você pode primeiro telefonar GetClassLayout com um comprimento zero rFieldOffset buffer para obter o dimensionar do buffer correto. Você pode então conjunto o dimensionar do buffer para o valor retornado em pcFieldOffset e chame GetClassLayout novamente.
Para obter mais informações sobre essas duas abordagens, consulte Buffers alocados chamador da API de criação de perfil.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0