Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft Informationen zum Layout im Arbeitsspeicher der von der angegebenen Klasse definierten Felder ab. Das heißt, diese Methode ruft die Offsets der Felder der Klasse ab.
Syntax
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parameters
classID [in] Die ID der Klasse, für die das Layout abgerufen wird.
rFieldOffset [in, out] Ein Array von COR_FIELD_OFFSET Strukturen, die jeweils die Token und Offsets der Felder der Klasse enthalten.
cFieldOffset [in] Die Größe des rFieldOffset Arrays.
pcFieldOffset [out] Ein Zeiger auf die Gesamtanzahl der verfügbaren Elemente. Wenn cFieldOffset 0 ist, gibt dieser Wert die Anzahl der benötigten Elemente an.
pulClassSize [out] Ein Zeiger auf eine Position, die die Größe der Klasse in Bytes enthält.
Remarks
Die GetClassLayout Methode gibt nur die felder zurück, die von der Klasse selbst definiert wurden. Wenn auch die übergeordnete Klasse der Klasse Felder definiert hat, muss der Profiler die übergeordnete Klasse aufrufen GetClassLayout , um diese Felder abzurufen.
Wenn Sie mit Zeichenfolgenklassen arbeiten GetClassLayout , schlägt die Methode mit fehlercode E_INVALIDARG fehl. Verwenden Sie ICorProfilerInfo2::GetStringLayout , um Informationen zum Layout einer Zeichenfolge abzurufen.
GetClassLayout schlägt auch fehl, wenn sie mit einer Arrayklasse aufgerufen wird.
Nach GetClassLayout dem Zurückgeben müssen Sie überprüfen, ob der rFieldOffset Puffer groß genug war, um alle verfügbaren COR_FIELD_OFFSET Strukturen zu enthalten. Vergleichen Sie dazu den Wert, pcFieldOffset der auf die Größe rFieldOffset einer Struktur verweist COR_FIELD_OFFSET . Wenn rFieldOffset nicht groß genug ist, weisen Sie einen größeren rFieldOffset Puffer zu, aktualisieren cFieldOffset Sie mit der neuen, größeren Größe und rufen Sie erneut auf GetClassLayout .
Alternativ können Sie zuerst einen Puffer der Länge GetClassLayout Null aufrufenrFieldOffset, um die richtige Puffergröße abzurufen. Anschließend können Sie die Puffergröße auf den zurückgegebenen pcFieldOffset Wert festlegen und erneut aufrufen GetClassLayout .
Requirements
Plattformen: Informationen finden Sie unter Systemanforderungen.
Kopfball: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework-Versionen: seit 2.0 verfügbar