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 informações sobre o layout, na memória, dos campos definidos pela classe especificada. Ou seja, esse método obtém os deslocamentos dos campos da classe.
Syntax
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parameters
classID [em] A ID da classe para a qual o layout será recuperado.
rFieldOffset [dentro, fora] Uma matriz de estruturas COR_FIELD_OFFSET , cada uma das quais contém os tokens e deslocamentos dos campos da classe.
cFieldOffset [em] O tamanho da rFieldOffset matriz.
pcFieldOffset [saídas] Um ponteiro para o número total de elementos disponíveis. Se cFieldOffset for 0, esse valor indica o número de elementos necessários.
pulClassSize [saídas] Um ponteiro para um local que contém o tamanho, em bytes, da classe.
Remarks
O GetClassLayout método retorna apenas os campos definidos pela própria classe. Se a classe pai da classe também tiver campos definidos, o criador de perfil deverá chamar GetClassLayout a classe pai para obter esses campos.
Se você usar GetClassLayout com classes de cadeia de caracteres, o método falhará com o código de erro E_INVALIDARG. Use ICorProfilerInfo2::GetStringLayout para obter informações sobre o layout de uma cadeia de caracteres.
GetClassLayout também falhará quando chamado com uma classe de matriz.
Após GetClassLayout os retornos, você deve verificar se o rFieldOffset buffer era grande o suficiente para conter todas as estruturas disponíveis COR_FIELD_OFFSET . Para fazer isso, compare o valor que pcFieldOffset aponta com o tamanho de dividido pelo tamanho de rFieldOffset uma COR_FIELD_OFFSET estrutura. Se rFieldOffset não for grande o suficiente, aloque um buffer maior rFieldOffset , atualize cFieldOffset com o novo tamanho maior e chame GetClassLayout novamente.
Como alternativa, você pode primeiro chamar GetClassLayout com um buffer de comprimento rFieldOffset zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer para o valor retornado e pcFieldOffset chamar GetClassLayout 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