Dela via


ICorProfilerInfo2::GetClassLayout, metod

Hämtar information om layouten i minnet för de fält som definierats av den angivna klassen. Den här metoden hämtar alltså förskjutningarna för klassens fält.

Syntax

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

Parametrar

classID
[in] ID:t för klassen som layouten ska hämtas för.

rFieldOffset
[in, ut] En matris med COR_FIELD_OFFSET strukturer, som var och en innehåller token och förskjutningar av klassens fält.

cFieldOffset
[in] Matrisens rFieldOffset storlek.

pcFieldOffset
[ut] En pekare till det totala antalet tillgängliga element. Om cFieldOffset är 0 anger det här värdet antalet element som behövs.

pulClassSize
[ut] En pekare till en plats som innehåller klassens storlek i byte.

Kommentarer

Metoden GetClassLayout returnerar endast de fält som definieras av själva klassen. Om klassens överordnade klass även har definierat fält måste profileraren anropa GetClassLayout den överordnade klassen för att hämta dessa fält.

Om du använder GetClassLayout med strängklasser misslyckas metoden med felkoden E_INVALIDARG. Använd ICorProfilerInfo2::GetStringLayout för att få information om layouten för en sträng. GetClassLayout misslyckas också när den anropas med en matrisklass.

När GetClassLayout du har returnerat måste du kontrollera att bufferten rFieldOffset var tillräckligt stor för att innehålla alla tillgängliga COR_FIELD_OFFSET strukturer. Det gör du genom att jämföra värdet som pcFieldOffset pekar på med storleken rFieldOffset på dividerat med storleken på en COR_FIELD_OFFSET struktur. Om rFieldOffset inte är tillräckligt stor allokerar du en större rFieldOffset buffert, uppdaterar cFieldOffset med den nya, större storleken och anropar GetClassLayout igen.

Du kan också först anropa GetClassLayout med en buffert med noll längd rFieldOffset för att få rätt buffertstorlek. Du kan sedan ange buffertstorleken till det värde som returneras och pcFieldOffset anropa GetClassLayout igen.

Krav

Plattformar: Se Systemkrav.

Huvudet: CorProf.idl, CorProf.h

Bibliotek: CorGuids.lib

.NET Framework versioner: Tillgänglig sedan 2.0

Se även