Udostępnij za pośrednictwem


ICorProfilerInfo2::GetClassLayout — Metoda

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.

Składnia

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

Parametry

classID
[w] 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
[w] Rozmiar tablicy rFieldOffset .

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

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

Uwagi

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 GetClassLayout z 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 również zakończy się niepowodzeniem po wywołaniu klasy 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ść pcFieldOffset wskazującą na rozmiar dzielony przez rozmiar rFieldOffsetCOR_FIELD_OFFSET struktury. 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 i wywołać GetClassLayout ponownie.

Wymagania

Platformy: Zobacz Wymagania systemowe.

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

Biblioteki: CorGuids.lib

.NET Framework wersje: dostępne od wersji 2.0

Zobacz też