Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 [in] A ID da classe para a qual o layout será recuperado.
rFieldOffset [dentro, fora] Uma matriz de estruturas de COR_FIELD_OFFSET , cada uma das quais contém os tokens e deslocamentos dos 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 for 0, esse valor indicará o número de elementos necessários.
pulClassSize [out] 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 o retorno, 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 para o tamanho de rFieldOffset dividido pelo tamanho de 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 como o valor retornado pcFieldOffset e chamar GetClassLayout novamente.
Requirements
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Library: CorGuids.lib
versões do .NET Framework: disponíveis desde 2.0