IMAGE_SECTION_HEADER Structure
Represents the image section header format.
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;
Members
- Name
An 8-byte, null-padded UTF-8 string. There is no terminating null character if the string is exactly eight characters long. For longer names, this member contains a forward slash (/) followed by an ASCII representation of a decimal number that is an offset into the string table. Executable images do not use a string table and do not support section names longer than eight characters.
- Misc
- PhysicalAddress
The file address.
- VirtualSize
The total size of the section when loaded into memory, in bytes. If this value is greater than the SizeOfRawData member, the section is filled with zeroes. This field is valid only for executable images and should be set to 0 for object files.
- VirtualAddress
The address of the first byte of the section when loaded into memory, relative to the image base. For object files, this is the address of the first byte before relocation is applied.
- SizeOfRawData
The size of the initialized data on disk, in bytes. This value must be a multiple of the FileAlignment member of the IMAGE_OPTIONAL_HEADER structure. If this value is less than the VirtualSize member, the remainder of the section is filled with zeroes. If the section contains only uninitialized data, the member is zero.
- PointerToRawData
A file pointer to the first page within the COFF file. This value must be a multiple of the FileAlignment member of the IMAGE_OPTIONAL_HEADER structure. If a section contains only uninitialized data, this member is zero.
- PointerToRelocations
A file pointer to the beginning of the relocation entries for the section. If there are no relocations, this value is zero.
- PointerToLinenumbers
A file pointer to the beginning of the line-number entries for the section. If there are no COFF line numbers, this value is zero.
- NumberOfRelocations
The number of relocation entries for the section. This value is zero for executable images.
- NumberOfLinenumbers
The number of line-number entries for the section.
- Characteristics
The characteristics of the image. The following values are defined.
Flag Meaning 0x00000000
Reserved.
0x00000001
Reserved.
0x00000002
Reserved.
0x00000004
Reserved.
IMAGE_SCN_TYPE_NO_PAD
0x00000008The section should not be padded to the next boundary. This flag is obsolete and is replaced by IMAGE_SCN_ALIGN_1BYTES.
0x00000010
Reserved.
IMAGE_SCN_CNT_CODE
0x00000020The section contains executable code.
IMAGE_SCN_CNT_INITIALIZED_DATA
0x00000040The section contains initialized data.
IMAGE_SCN_CNT_UNINITIALIZED_DATA
0x00000080The section contains uninitialized data.
IMAGE_SCN_LNK_OTHER
0x00000100Reserved.
IMAGE_SCN_LNK_INFO
0x00000200The section contains comments or other information. This is valid only for object files.
0x00000400
Reserved.
IMAGE_SCN_LNK_REMOVE
0x00000800The section will not become part of the image. This is valid only for object files.
IMAGE_SCN_LNK_COMDAT
0x00001000The section contains COMDAT data. This is valid only for object files.
0x00002000
Reserved.
IMAGE_SCN_NO_DEFER_SPEC_EXC
0x00004000Reset speculative exceptions handling bits in the TLB entries for this section.
IMAGE_SCN_GPREL
0x00008000The section contains data referenced through the global pointer.
0x00010000
Reserved.
IMAGE_SCN_MEM_PURGEABLE
0x00020000Reserved.
IMAGE_SCN_MEM_LOCKED
0x00040000Reserved.
IMAGE_SCN_MEM_PRELOAD
0x00080000Reserved.
IMAGE_SCN_ALIGN_1BYTES
0x00100000Align data on a 1-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_2BYTES
0x00200000Align data on a 2-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_4BYTES
0x00300000Align data on a 4-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_8BYTES
0x00400000Align data on a 8-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_16BYTES
0x00500000Align data on a 16-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_32BYTES
0x00600000Align data on a 32-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_64BYTES
0x00700000Align data on a 64-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_128BYTES
0x00800000Align data on a 128-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_256BYTES
0x00900000Align data on a 256-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_512BYTES
0x00A00000Align data on a 512-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_1024BYTES
0x00B00000Align data on a 1024-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_2048BYTES
0x00C00000Align data on a 2048-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_4096BYTES
0x00D00000Align data on a 4096-byte boundary. This is valid only for object files.
IMAGE_SCN_ALIGN_8192BYTES
0x00E00000Align data on a 8192-byte boundary. This is valid only for object files.
IMAGE_SCN_LNK_NRELOC_OVFL
0x01000000The section contains extended relocations. The count of relocations for the section exceeds the 16 bits that is reserved for it in the section header. If the NumberOfRelocations field in the section header is 0xffff, the actual relocation count is stored in the VirtualAddress field of the first relocation. It is an error if IMAGE_SCN_LNK_NRELOC_OVFL is set and there are fewer than 0xffff relocations in the section.
IMAGE_SCN_MEM_DISCARDABLE
0x02000000The section can be discarded as needed.
IMAGE_SCN_MEM_NOT_CACHED
0x04000000The section cannot be cached.
IMAGE_SCN_MEM_NOT_PAGED
0x08000000The section cannot be paged.
IMAGE_SCN_MEM_SHARED
0x10000000The section can be shared in memory.
IMAGE_SCN_MEM_EXECUTE
0x20000000The section can be executed as code.
IMAGE_SCN_MEM_READ
0x40000000The section can be read.
IMAGE_SCN_MEM_WRITE
0x80000000The section can be written to.
Requirements
Client |
Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, or Windows 95. |
---|---|
Server |
Requires Windows Server 2008, Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0. |
Header |
Declared in Winnt.h; include Windows.h. |
See Also
ImageHlp Structures
ImageDirectoryEntryToDataEx
ImageRvaToSection
ImageRvaToVa
LOADED_IMAGE
Send comments about this topic to Microsoft
Build date: 9/25/2007
© 2007 Microsoft Corporation. All rights reserved.