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