ICorProfilerInfo2::GetClassLayout-Methode
Ruft aus dem Arbeitsspeicher Informationen über das Layout der Felder ab, die durch die angegebene Klasse definiert sind . 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);
Parameter
classID
[in] Die ID der Klasse, für das Layout abgerufen werden soll.
rFieldOffset
[in, out] Ein Array von COR_FIELD_OFFSET-Strukturen, von denen jede die Token und Offsets der Klassenfelder enthält.
cFieldOffset
[in] Die Größe des rFieldOffset
-Arrays.
pcFieldOffset
[out] Ein Zeiger auf die Gesamtzahl der verfügbaren Elemente. Wenn cFieldOffset
gleich 0 ist, gibt dieser Wert gibt die Anzahl von benötigten Elementen an.
pulClassSize
[out] Ein Zeiger auf einen Speicherort, der die Größe der Klasse in Bytes enthält.
Bemerkungen
Die GetClassLayout
-Methode gibt nur die von der Klasse selbst definierten Felder zurück. Wenn die übergeordnete Klasse der Klasse ebenfalls Felder definiert hat, muss der Profiler die GetClassLayout
-Methode für die übergeordnete Klasse aufrufen, um diese Felder abzurufen.
Wenn Sie GetClassLayout
mit Zeichenfolgenklassen verwenden, schlägt die Methode mit dem Fehlercode E_INVALIDARG fehl. Verwenden Sie ICorProfilerInfo2::GetStringLayout, um Informationen zum Layout einer Zeichenfolge abzurufen. Die GetClassLayout
-Methode schlägt auch fehl, wenn sie mit einer Arrayklasse aufgerufen wird.
Nachdem GetClassLayout
abgeschlossen ist, müssen Sie sicherstellen, dass der rFieldOffset
-Puffer groß genug war, um alle verfügbaren COR_FIELD_OFFSET
-Strukturen aufzunehmen. Vergleichen Sie hierzu den Wert, auf den pcFieldOffset
verweist, mit der Größe von rFieldOffset
dividiert durch die Größe einer COR_FIELD_OFFSET
-Struktur. Wenn rFieldOffset
nicht groß genug ist, weisen Sie einen größeren rFieldOffset
-Puffer zu, aktualisieren Sie cFieldOffset
mit der neuen Größe, und rufen Sie GetClassLayout
erneut auf.
Alternativ können Sie zuerst GetClassLayout
mit einem rFieldOffset
-Puffer der Länge 0 (NULL) aufrufen, um die richtige Puffergröße zu ermitteln. Sie können die Puffergröße dann auf den Wert festlegen, der von pcFieldOffset
zurückgegeben wurde, und GetClassLayout
erneut aufrufen.
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: CorProf.idl, CorProf.h
Bibliothek: CorGuids.lib
.NET Framework-Versionen: Seit 2.0 verfügbar.