Представляет формат заголовка раздела изображения.
Синтаксис
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;
Члены
Name[IMAGE_SIZEOF_SHORT_NAME]
8-байтовая строка UTF-8 с заполнением null. Если строка имеет длину ровно восемь символов, то завершающийся пустой символ не существует. Для более длинных имен этот элемент содержит косую черту (/), за которой следует ASCII-представление десятичного числа, являющегося смещением в строковой таблице. Исполняемые образы не используют строковую таблицу и не поддерживают имена разделов длиной более восьми символов.
Misc
Misc.PhysicalAddress
Адрес файла.
Misc.VirtualSize
Общий размер раздела при загрузке в память в байтах. Если это значение больше элемента SizeOfRawData , раздел заполняется нулями. Это поле допустимо только для исполняемых образов и должно иметь значение 0 для объектных файлов.
VirtualAddress
Адрес первого байта раздела при загрузке в память относительно базы образа. Для файлов объектов это адрес первого байта перед применением перемещения.
SizeOfRawData
Размер инициализированных данных на диске в байтах. Это значение должно быть кратным члену FileAlignmentструктуры IMAGE_OPTIONAL_HEADER . Если это значение меньше элемента VirtualSize , оставшаяся часть раздела заполняется нулями. Если раздел содержит только неинициализированные данные, член равен нулю.
PointerToRawData
Указатель на первую страницу в файле COFF. Это значение должно быть кратным члену FileAlignmentструктуры IMAGE_OPTIONAL_HEADER . Если раздел содержит только неинициализированные данные, задайте для этого элемента нулевое значение.
PointerToRelocations
Файл, указатель на начало записей перемещения для раздела. Если перемещения отсутствуют, это значение равно нулю.
PointerToLinenumbers
Указатель на начало строковых записей раздела. Если номера строк COFF отсутствуют, это значение равно нулю.
NumberOfRelocations
Количество записей о перемещении для раздела. Это значение равно нулю для исполняемых образов.
NumberOfLinenumbers
Количество строковых записей для раздела.
Characteristics
Характеристики изображения. Определены следующие значения.
| Flag |
Значение |
- 0x00000000
|
Зарезервировано.
|
- 0x00000001
|
Зарезервировано.
|
- 0x00000002
|
Зарезервировано.
|
- 0x00000004
|
Зарезервировано.
|
-
IMAGE_SCN_TYPE_NO_PAD
- 0x00000008
|
Раздел не должен быть заполнен до следующей границы. Этот флаг устарел и заменяется IMAGE_SCN_ALIGN_1BYTES.
|
- 0x00000010
|
Зарезервировано.
|
-
IMAGE_SCN_CNT_CODE
- 0x00000020
|
Раздел содержит исполняемый код.
|
-
IMAGE_SCN_CNT_INITIALIZED_DATA
- 0x00000040
|
Раздел содержит инициализированные данные.
|
-
IMAGE_SCN_CNT_UNINITIALIZED_DATA
- 0x00000080
|
Раздел содержит неинициализированные данные.
|
-
IMAGE_SCN_LNK_OTHER
- 0x00000100
|
Зарезервировано.
|
-
IMAGE_SCN_LNK_INFO
- 0x00000200
|
Раздел содержит комментарии или другую информацию. Это допустимо только для объектных файлов.
|
- 0x00000400
|
Зарезервировано.
|
-
IMAGE_SCN_LNK_REMOVE
- 0x00000800
|
Раздел не станет частью образа. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_LNK_COMDAT
- 0x00001000
|
Раздел содержит данные COMDAT. Это допустимо только для объектных файлов.
|
- 0x00002000
|
Зарезервировано.
|
-
IMAGE_SCN_NO_DEFER_SPEC_EXC
- 0x00004000
|
Сброс спекулятивных исключений, обрабатывающих биты в записях TLB для этого раздела.
|
-
IMAGE_SCN_GPREL
- 0x00008000
|
Раздел содержит данные, на которые ссылается глобальный указатель.
|
- 0x00010000
|
Зарезервировано.
|
-
IMAGE_SCN_MEM_PURGEABLE
- 0x00020000
|
Зарезервировано.
|
-
IMAGE_SCN_MEM_LOCKED
- 0x00040000
|
Зарезервировано.
|
-
IMAGE_SCN_MEM_PRELOAD
- 0x00080000
|
Зарезервировано.
|
-
IMAGE_SCN_ALIGN_1BYTES
- 0x00100000
|
Выравнивание данных по 1-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_2BYTES
- 0x00200000
|
Выравнивание данных по 2-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_4BYTES
- 0x00300000
|
Выравнивание данных по 4-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_8BYTES
- 0x00400000
|
Выравнивание данных по 8-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_16BYTES
- 0x00500000
|
Выравнивание данных по 16-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_32BYTES
- 0x00600000
|
Выравнивание данных по 32-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_64BYTES
- 0x00700000
|
Выравнивание данных по 64-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_128BYTES
- 0x00800000
|
Выравнивание данных по 128-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_256BYTES
- 0x00900000
|
Выравнивание данных по 256-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_512BYTES
- 0x00A00000
|
Выравнивание данных по 512-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_1024BYTES
- 0x00B00000
|
Выравнивание данных по 1024-байтовой границе. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_2048BYTES
- 0x00C00000
|
Выравнивание данных по границе в 2048 байтов. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_4096BYTES
- 0x00D00000
|
Выравнивание данных по границе в 4096 байт. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_ALIGN_8192BYTES
- 0x00E00000
|
Выравнивание данных по границе в 8192 байта. Это допустимо только для объектных файлов.
|
-
IMAGE_SCN_LNK_NRELOC_OVFL
- 0x01000000
|
Раздел содержит расширенные перемещения. Количество перемещений для раздела превышает 16 бит, зарезервированных для него в заголовке раздела. Если поле NumberOfRelocations в заголовке раздела 0xffff, фактическое число перемещения сохраняется в поле VirtualAddress первого перемещения. Ошибка, если IMAGE_SCN_LNK_NRELOC_OVFL задано и в разделе меньше 0xffff перемещения.
|
-
IMAGE_SCN_MEM_DISCARDABLE
- 0x02000000
|
При необходимости раздел можно удалить.
|
-
IMAGE_SCN_MEM_NOT_CACHED
- 0x04000000
|
Раздел не может быть кэширован.
|
-
IMAGE_SCN_MEM_NOT_PAGED
- 0x08000000
|
Раздел не может быть разостранит.
|
-
IMAGE_SCN_MEM_SHARED
- 0x10000000
|
Раздел можно совместно использовать в памяти.
|
-
IMAGE_SCN_MEM_EXECUTE
- 0x20000000
|
Раздел можно выполнить в виде кода.
|
-
IMAGE_SCN_MEM_READ
- 0x40000000
|
Раздел можно прочитать.
|
-
IMAGE_SCN_MEM_WRITE
- 0x80000000
|
Раздел можно записать в .
|
Требования
| Требование |
Значение |
|
Минимальная версия клиента |
Windows XP [только классические приложения] |
|
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
|
Верхняя часть |
winnt.h (включая Windows.h) |
См. также раздел
ImageDirectoryEntryToDataEx
Структуры ImageHlp
ImageRvaToSection
ImageRvaToVa
LOADED_IMAGE