Udostępnij przez


ICorProfilerInfo2::GetClassLayout Method

Pobiera informacje o układzie w pamięci pól zdefiniowanych przez określoną klasę. Oznacza to, że ta metoda pobiera przesunięcia pól klasy.

Syntax

HRESULT GetClassLayout(
    [in]  ClassID classID,
    [in, out] COR_FIELD_OFFSET rFieldOffset[],
    [in]  ULONG cFieldOffset,
    [out] ULONG *pcFieldOffset,
    [out] ULONG *pulClassSize);

Parameters

classID [in] Identyfikator klasy, dla której zostanie pobrany układ.

rFieldOffset [in, out] Tablica struktur COR_FIELD_OFFSET , z których każda zawiera tokeny i przesunięcia pól klasy.

cFieldOffset [in] Rozmiar tablicy rFieldOffset .

pcFieldOffset [out] Wskaźnik do całkowitej liczby dostępnych elementów. Jeśli cFieldOffset wartość to 0, ta wartość wskazuje wymaganą liczbę elementów.

pulClassSize [out] Wskaźnik do lokalizacji zawierającej rozmiar w bajtach klasy.

Remarks

Metoda GetClassLayout zwraca tylko pola zdefiniowane przez samą klasę. Jeśli klasa nadrzędna klasy ma również zdefiniowane pola, profiler musi wywołać GetClassLayout klasę nadrzędną, aby uzyskać te pola.

Jeśli używasz z GetClassLayout klasami ciągów, metoda zakończy się niepowodzeniem z kodem błędu E_INVALIDARG. Użyj elementu ICorProfilerInfo2::GetStringLayout , aby uzyskać informacje o układzie ciągu. GetClassLayout program również zakończy się niepowodzeniem po wywołaniu z klasą tablicy.

Po GetClassLayout powrocie należy sprawdzić, czy rFieldOffset bufor był wystarczająco duży, aby zawierał wszystkie dostępne COR_FIELD_OFFSET struktury. W tym celu należy porównać wartość wskazującą pcFieldOffset rozmiar struktury z rozmiarem rFieldOffset podzielonym COR_FIELD_OFFSET . Jeśli rFieldOffset nie jest wystarczająco duży, przydziel większy rFieldOffset bufor, zaktualizuj cFieldOffset go przy użyciu nowego, większego rozmiaru i wywołaj GetClassLayout ponownie.

Alternatywnie można najpierw wywołać GetClassLayout bufor o zerowej długości rFieldOffset , aby uzyskać prawidłowy rozmiar buforu. Następnie można ustawić rozmiar buforu na wartość zwróconą w pcFieldOffset pliku i wywołać GetClassLayout ponownie.

Requirements

Platformy: zobacz Wymagania systemowe.

Nagłówek: CorProf.idl, CorProf.h

Library: CorGuids.lib

wersje programu .NET Framework: dostępne od wersji 2.0

See also