estructura IMAGE_SECTION_HEADER (winnt.h)

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