Share via


IMAGE_SECTION_HEADER-Struktur (winnt.h)

Stellt das Headerformat des Bildabschnitts dar.

Syntax

typedef struct _IMAGE_SECTION_HEADER {
  BYTE  Name[IMAGE_SIZEOF_SHORT_NAME];
  union {
    DWORD PhysicalAddress;
    DWORD VirtualSize;
  } Misc;
  DWORD VirtualAddress;
  DWORD SizeOfRawData;
  DWORD PointerToRawData;
  DWORD PointerToRelocations;
  DWORD PointerToLinenumbers;
  WORD  NumberOfRelocations;
  WORD  NumberOfLinenumbers;
  DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;

Member

Name[IMAGE_SIZEOF_SHORT_NAME]

Eine 8-Byte-, NULL-aufgefüllte UTF-8-Zeichenfolge. Es gibt kein beendendes NULL-Zeichen, wenn die Zeichenfolge genau acht Zeichen lang ist. Bei längeren Namen enthält dieses Element einen Schrägstrich (/) gefolgt von einer ASCII-Darstellung einer Dezimalzahl, die einen Offset in die Zeichenfolgentabelle darstellt. Ausführbare Images verwenden keine Zeichenfolgentabelle und unterstützen keine Abschnittsnamen, die länger als acht Zeichen sind.

Misc

Misc.PhysicalAddress

Die Dateiadresse.

Misc.VirtualSize

Die Gesamtgröße des Abschnitts beim Laden in den Arbeitsspeicher in Bytes. Wenn dieser Wert größer als das SizeOfRawData-Element ist, wird der Abschnitt mit Nullen gefüllt. Dieses Feld ist nur für ausführbare Images gültig und sollte für Objektdateien auf 0 festgelegt werden.

VirtualAddress

Die Adresse des ersten Byte des Abschnitts, wenn es in den Arbeitsspeicher geladen wird, relativ zur Imagebasis. Bei Objektdateien ist dies die Adresse des ersten Byte vor der Verschiebung.

SizeOfRawData

Die Größe der initialisierten Daten auf dem Datenträger in Bytes. Dieser Wert muss ein Vielfaches des FileAlignment-Members der IMAGE_OPTIONAL_HEADER-Struktur sein. Wenn dieser Wert kleiner als der VirtualSize-Member ist, wird der Rest des Abschnitts mit Nullen gefüllt. Wenn der Abschnitt nur nicht initialisierte Daten enthält, ist das Element 0.

PointerToRawData

Ein Dateizeiger auf die erste Seite in der COFF-Datei. Dieser Wert muss ein Vielfaches des FileAlignment-Members der IMAGE_OPTIONAL_HEADER-Struktur sein. Wenn ein Abschnitt nur nicht initialisierte Daten enthält, legen Sie diesen Member auf Null fest.

PointerToRelocations

Ein Dateizeiger auf den Anfang der Umlagerungseinträge für den Abschnitt. Wenn keine Verlagerungen vorhanden sind, ist dieser Wert 0.

PointerToLinenumbers

Ein Dateizeiger auf den Anfang der Zeilennummerneinträge für den Abschnitt. Wenn keine COFF-Zeilennummern vorhanden sind, ist dieser Wert 0.

NumberOfRelocations

Die Anzahl der Verschiebungseinträge für den Abschnitt. Dieser Wert ist 0 für ausführbare Images.

NumberOfLinenumbers

Die Anzahl der Zeilennummerneinträge für den Abschnitt.

Characteristics

Die Merkmale des Bilds. Die folgenden Werte werden definiert.

Flag Bedeutung
0x00000000
Reserviert.
0x00000001
Reserviert.
0x00000002
Reserviert.
0x00000004
Reserviert.
IMAGE_SCN_TYPE_NO_PAD
0x00000008
Der Abschnitt sollte nicht bis zur nächsten Grenze aufgefüllt werden. Dieses Flag ist veraltet und wird durch IMAGE_SCN_ALIGN_1BYTES ersetzt.
0x00000010
Reserviert.
IMAGE_SCN_CNT_CODE
0x00000020
Der Abschnitt enthält ausführbaren Code.
IMAGE_SCN_CNT_INITIALIZED_DATA
0x00000040
Der Abschnitt enthält initialisierte Daten.
IMAGE_SCN_CNT_UNINITIALIZED_DATA
0x00000080
Der Abschnitt enthält nicht initialisierte Daten.
IMAGE_SCN_LNK_OTHER
0x00000100
Reserviert.
IMAGE_SCN_LNK_INFO
0x00000200
Der Abschnitt enthält Kommentare oder andere Informationen. Dies ist nur für Objektdateien gültig.
0x00000400
Reserviert.
IMAGE_SCN_LNK_REMOVE
0x00000800
Der Ausschnitt wird nicht Teil des Images. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_LNK_COMDAT
0x00001000
Der Abschnitt enthält COMDAT-Daten. Dies ist nur für Objektdateien gültig.
0x00002000
Reserviert.
IMAGE_SCN_NO_DEFER_SPEC_EXC
0x00004000
Setzen Sie spekulative Ausnahmen zurück, die Bits in den TLB-Einträgen für diesen Abschnitt behandeln.
IMAGE_SCN_GPREL
0x00008000
Der Abschnitt enthält Daten, auf die über den globalen Zeiger verwiesen wird.
0x00010000
Reserviert.
IMAGE_SCN_MEM_PURGEABLE
0x00020000
Reserviert.
IMAGE_SCN_MEM_LOCKED
0x00040000
Reserviert.
IMAGE_SCN_MEM_PRELOAD
0x00080000
Reserviert.
IMAGE_SCN_ALIGN_1BYTES
0x00100000
Richtet die Daten an einer 1-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_2BYTES
0x00200000
Richtet die Daten an einer 2-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_4BYTES
0x00300000
Richtet die Daten an einer 4-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_8BYTES
0x00400000
Richten Sie Daten an einer 8-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_16BYTES
0x00500000
Richtet die Daten an einer 16-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_32BYTES
0x00600000
Richtet die Daten an einer 32-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_64BYTES
0x00700000
Richtet die Daten an einer 64-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_128BYTES
0x00800000
Richtet die Daten an einer 128-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_256BYTES
0x00900000
Richtet die Daten an einer 256-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_512BYTES
0x00A00000
Richtet die Daten an einer 512-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_1024BYTES
0x00B00000
Richtet die Daten an einer 1024-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_2048BYTES
0x00C00000
Richtet die Daten an einer 2048-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_4096BYTES
0x00D00000
Richtet die Daten an einer 4096-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_ALIGN_8192BYTES
0x00E00000
Richten Sie Daten an einer 8192-Byte-Grenze aus. Dies ist nur für Objektdateien gültig.
IMAGE_SCN_LNK_NRELOC_OVFL
0x01000000
Der Abschnitt enthält erweiterte Verschiebungen. Die Anzahl der Verlagerungen für den Abschnitt überschreitet die 16 Bits, die im Abschnittsheader für ihn reserviert sind. Wenn das Feld NumberOfRelocations im Abschnittsheader 0xffff ist, wird die tatsächliche Verlagerungsanzahl im Feld VirtualAddress der ersten Verlagerung gespeichert. Es ist ein Fehler, wenn IMAGE_SCN_LNK_NRELOC_OVFL festgelegt ist und es weniger als 0xffff Verschiebungen in dem Abschnitt gibt.
IMAGE_SCN_MEM_DISCARDABLE
0x02000000
Der Abschnitt kann bei Bedarf verworfen werden.
IMAGE_SCN_MEM_NOT_CACHED
0x04000000
Der Abschnitt kann nicht zwischengespeichert werden.
IMAGE_SCN_MEM_NOT_PAGED
0x08000000
Der Abschnitt kann nicht ausgelagert werden.
IMAGE_SCN_MEM_SHARED
0x10000000
Der Abschnitt kann im Arbeitsspeicher freigegeben werden.
IMAGE_SCN_MEM_EXECUTE
0x20000000
Der Abschnitt kann als Code ausgeführt werden.
IMAGE_SCN_MEM_READ
0x40000000
Der Abschnitt kann gelesen werden.
IMAGE_SCN_MEM_WRITE
0x80000000
Der Abschnitt kann angeschrieben werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winnt.h (Einschließen von Windows.h)

Weitere Informationen

ImageDirectoryEntryToDataEx

ImageHlp-Strukturen

ImageRvaToSection

ImageRvaToVa

LOADED_IMAGE