Representa el formato de encabezado de sección de imagen.
Sintaxis
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;
Miembros
Name[IMAGE_SIZEOF_SHORT_NAME]
Cadena UTF-8 rellenada de 8 bytes. No hay ningún carácter nulo de terminación si la cadena tiene exactamente ocho caracteres. Para nombres más largos, este miembro contiene una barra diagonal (/) seguida de una representación ASCII de un número decimal que es un desplazamiento en la tabla de cadenas. Las imágenes ejecutables no usan una tabla de cadenas y no admiten nombres de sección de más de ocho caracteres.
Misc
Misc.PhysicalAddress
Dirección del archivo.
Misc.VirtualSize
Tamaño total de la sección cuando se carga en memoria, en bytes. Si este valor es mayor que el miembro SizeOfRawData , la sección se rellena con ceros. Este campo solo es válido para las imágenes ejecutables y debe establecerse en 0 para los archivos de objeto.
VirtualAddress
Dirección del primer byte de la sección cuando se carga en la memoria, en relación con la base de la imagen. En el caso de los archivos de objeto, esta es la dirección del primer byte antes de aplicar la reubicación.
SizeOfRawData
Tamaño de los datos inicializados en el disco, en bytes. Este valor debe ser un múltiplo del miembro FileAlignment de la estructura IMAGE_OPTIONAL_HEADER . Si este valor es menor que el miembro VirtualSize , el resto de la sección se rellena con ceros. Si la sección solo contiene datos no inicializados, el miembro es cero.
PointerToRawData
Puntero de archivo a la primera página del archivo COFF. Este valor debe ser un múltiplo del miembro FileAlignment de la estructura IMAGE_OPTIONAL_HEADER . Si una sección solo contiene datos no inicializados, establezca este miembro en cero.
PointerToRelocations
Puntero de archivo al principio de las entradas de reubicación de la sección. Si no hay reubicaciones, este valor es cero.
PointerToLinenumbers
Puntero de archivo al principio de las entradas de número de línea de la sección. Si no hay números de línea COFF, este valor es cero.
NumberOfRelocations
Número de entradas de reubicación de la sección. Este valor es cero para las imágenes ejecutables.
NumberOfLinenumbers
Número de entradas de número de línea de la sección.
Characteristics
Características de la imagen. Se definen los valores siguientes.
| Marca |
Significado |
- 0x00000000
|
Reservado.
|
- 0x00000001
|
Reservado.
|
- 0x00000002
|
Reservado.
|
- 0x00000004
|
Reservado.
|
-
IMAGE_SCN_TYPE_NO_PAD
- 0x00000008
|
La sección no se debe rellenar en el límite siguiente. Esta marca está obsoleta y reemplaza IMAGE_SCN_ALIGN_1BYTES.
|
- 0x00000010
|
Reservado.
|
-
IMAGE_SCN_CNT_CODE
- 0x00000020
|
La sección contiene código ejecutable.
|
-
IMAGE_SCN_CNT_INITIALIZED_DATA
- 0x00000040
|
La sección contiene datos inicializados.
|
-
IMAGE_SCN_CNT_UNINITIALIZED_DATA
- 0x00000080
|
La sección contiene datos no inicializados.
|
-
IMAGE_SCN_LNK_OTHER
- 0x00000100
|
Reservado.
|
-
IMAGE_SCN_LNK_INFO
- 0x00000200
|
La sección contiene comentarios u otra información. Esto solo es válido para archivos de objeto.
|
- 0x00000400
|
Reservado.
|
-
IMAGE_SCN_LNK_REMOVE
- 0x00000800
|
La sección no formará parte de la imagen. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_LNK_COMDAT
- 0x00001000
|
La sección contiene datos COMDAT. Esto solo es válido para archivos de objeto.
|
- 0x00002000
|
Reservado.
|
-
IMAGE_SCN_NO_DEFER_SPEC_EXC
- 0x00004000
|
Restablezca los bits de control de excepciones especulativas en las entradas de TLB de esta sección.
|
-
IMAGE_SCN_GPREL
- 0x00008000
|
La sección contiene datos a los que se hace referencia a través del puntero global.
|
- 0x00010000
|
Reservado.
|
-
IMAGE_SCN_MEM_PURGEABLE
- 0x00020000
|
Reservado.
|
-
IMAGE_SCN_MEM_LOCKED
- 0x00040000
|
Reservado.
|
-
IMAGE_SCN_MEM_PRELOAD
- 0x00080000
|
Reservado.
|
-
IMAGE_SCN_ALIGN_1BYTES
- 0x00100000
|
Alinee los datos en un límite de 1 byte. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_2BYTES
- 0x00200000
|
Alinee los datos en un límite de 2 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_4BYTES
- 0x00300000
|
Alinee los datos en un límite de 4 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_8BYTES
- 0x00400000
|
Alinee los datos en un límite de 8 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_16BYTES
- 0x00500000
|
Alinee los datos en un límite de 16 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_32BYTES
- 0x00600000
|
Alinee los datos en un límite de 32 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_64BYTES
- 0x00700000
|
Alinee los datos en un límite de 64 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_128BYTES
- 0x00800000
|
Alinee los datos en un límite de 128 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_256BYTES
- 0x00900000
|
Alinee los datos en un límite de 256 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_512BYTES
- 0x00A00000
|
Alinee los datos en un límite de 512 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_1024BYTES
- 0x00B00000
|
Alinee los datos en un límite de 1024 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_2048BYTES
- 0x00C00000
|
Alinee los datos en un límite de 2048 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_4096BYTES
- 0x00D00000
|
Alinee los datos en un límite de 4096 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_ALIGN_8192BYTES
- 0x00E00000
|
Alinee los datos en un límite de 8192 bytes. Esto solo es válido para archivos de objeto.
|
-
IMAGE_SCN_LNK_NRELOC_OVFL
- 0x01000000
|
La sección contiene reubicaciones extendidas. El recuento de reubicaciones de la sección supera los 16 bits reservados para ella en el encabezado de sección. Si el campo NumberOfRelocations del encabezado de sección es 0xffff, el recuento de reubicaciones real se almacena en el campo VirtualAddress de la primera reubicación. Es un error si se establece IMAGE_SCN_LNK_NRELOC_OVFL y hay menos de 0xffff reubicaciones en la sección.
|
-
IMAGE_SCN_MEM_DISCARDABLE
- 0x02000000
|
La sección se puede descartar según sea necesario.
|
-
IMAGE_SCN_MEM_NOT_CACHED
- 0x04000000
|
La sección no se puede almacenar en caché.
|
-
IMAGE_SCN_MEM_NOT_PAGED
- 0x08000000
|
La sección no se puede paginar.
|
-
IMAGE_SCN_MEM_SHARED
- 0x10000000
|
La sección se puede compartir en la memoria.
|
-
IMAGE_SCN_MEM_EXECUTE
- 0x20000000
|
La sección se puede ejecutar como código.
|
-
IMAGE_SCN_MEM_READ
- 0x40000000
|
La sección se puede leer.
|
-
IMAGE_SCN_MEM_WRITE
- 0x80000000
|
Se puede escribir en la sección.
|
Requisitos
| Requisito |
Value |
|
Cliente mínimo compatible |
Windows XP [solo aplicaciones de escritorio] |
|
Servidor mínimo compatible |
Windows Server 2003 [solo aplicaciones de escritorio] |
|
Encabezado |
winnt.h (incluya Windows.h) |
Consulte también
ImageDirectoryEntryToDataEx
Estructuras de ImageHlp
ImageRvaToSection
ImageRvaToVa
LOADED_IMAGE