Método ICorProfilerInfo2::GetClassLayout
Obtém informações sobre o esquema, na memória, dos campos definidos pela classe especificada. Ou seja, este método obtém os desvios dos campos da classe.
Sintaxe
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parâmetros
classID
[in] O ID da classe para a qual o esquema será obtido.
rFieldOffset
[dentro, fora] Uma matriz de estruturas COR_FIELD_OFFSET , cada uma das quais contém os tokens e desvios dos campos da classe.
cFieldOffset
[in] O tamanho da rFieldOffset
matriz.
pcFieldOffset
[fora] Um ponteiro para o número total de elementos disponíveis. Se cFieldOffset
for 0, este valor indica o número de elementos necessários.
pulClassSize
[fora] Um ponteiro para uma localização que contém o tamanho, em bytes, da classe.
Observações
O GetClassLayout
método devolve apenas os campos definidos pela própria classe. Se a classe principal da classe também tiver campos definidos, o gerador de perfis tem de chamar GetClassLayout
a classe principal para obter esses campos.
Se utilizar GetClassLayout
com classes de cadeia, o método falhará com o código de erro E_INVALIDARG. Utilize ICorProfilerInfo2::GetStringLayout para obter informações sobre o esquema de uma cadeia. GetClassLayout
também falhará quando for chamada com uma classe de matriz.
Após GetClassLayout
a devolução, tem de verificar se a rFieldOffset
memória intermédia era suficientemente grande para conter todas as estruturas disponíveis COR_FIELD_OFFSET
. Para tal, compare o valor que pcFieldOffset
aponta com o tamanho de rFieldOffset
dividido pelo tamanho de uma COR_FIELD_OFFSET
estrutura. Se rFieldOffset
não for suficientemente grande, aloque uma memória intermédia maior rFieldOffset
, atualize cFieldOffset
com o novo tamanho maior e chame GetClassLayout
novamente.
Em alternativa, pode chamar GetClassLayout
primeiro com uma memória intermédia de comprimento rFieldOffset
zero para obter o tamanho da memória intermédia correto. Em seguida, pode definir o tamanho da memória intermédia para o valor devolvido em pcFieldOffset
e chamar GetClassLayout
novamente.
Requisitos
Plataformas: Veja Requisitos do Sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework Versões: Disponível desde 2.0