ICorProfilerInfo2::GetClassLayout Method

Získá informace o rozložení v paměti polí definovaných zadanou třídou. To znamená, že tato metoda získá posuny polí třídy.

Syntax

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

Parameters

classID [v] ID třídy, pro kterou se rozložení načte.

rFieldOffset [in, out] Pole COR_FIELD_OFFSET struktur, z nichž každý obsahuje tokeny a posuny polí třídy.

cFieldOffset [v] Velikost rFieldOffset pole.

pcFieldOffset [ven] Ukazatel na celkový počet dostupných prvků. Pokud cFieldOffset je 0, tato hodnota označuje počet potřebných prvků.

pulClassSize [ven] Ukazatel na umístění, které obsahuje velikost třídy v bajtech.

Remarks

Metoda GetClassLayout vrátí pouze pole definovaná samotnou třídou. Pokud nadřazená třída třídy má také definovaná pole, profiler musí volat GetClassLayout nadřazenou třídu, aby tato pole získal.

Pokud použijete GetClassLayout s řetězcovými třídami, metoda selže s kódem chyby E_INVALIDARG. K získání informací o rozložení řetězce použijte ICorProfilerInfo2::GetStringLayout . GetClassLayout dojde také k selhání při zavolání s maticovou třídou.

Po GetClassLayout vrácení je nutné ověřit, že rFieldOffset vyrovnávací paměť byla dostatečně velká, aby obsahovala všechny dostupné COR_FIELD_OFFSET struktury. Uděláte to tak, že porovnáte hodnotu, na kterou pcFieldOffset odkazujete, s velikostí rFieldOffset dělenou velikostí COR_FIELD_OFFSET struktury. Pokud rFieldOffset není dostatečně velký, přidělte větší rFieldOffset vyrovnávací paměť, aktualizujte cFieldOffset novou, větší velikost a znovu volejte GetClassLayout .

Případně můžete nejprve zavolat GetClassLayout vyrovnávací paměť s nulovou délkou rFieldOffset , abyste získali správnou velikost vyrovnávací paměti. Velikost vyrovnávací paměti pak můžete nastavit na hodnotu vrácenou a pcFieldOffset znovu zavolat GetClassLayout .

Requirements

Platformy: Viz požadavky na systém.

Záhlaví: CorProf.idl, CorProf.h

Library: CorGuids.lib

verze rozhraní .NET Framework: k dispozici od verze 2.0

See also