Representa o formato do cabeçalho da seção de imagem.
Sintaxe
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;
Membros
Name[IMAGE_SIZEOF_SHORT_NAME]
Uma cadeia de caracteres UTF-8 de 8 bytes e com adição nula. Não haverá nenhum caractere nulo de terminação se a cadeia de caracteres tiver exatamente oito caracteres. Para nomes mais longos, esse membro contém uma barra de encaminhamento (/) seguida por uma representação ASCII de um número decimal que é um deslocamento para a tabela de cadeia de caracteres. As imagens executáveis não usam uma tabela de cadeia de caracteres e não dão suporte a nomes de seção com mais de oito caracteres.
Misc
Misc.PhysicalAddress
O endereço do arquivo.
Misc.VirtualSize
O tamanho total da seção quando carregado na memória, em bytes. Se esse valor for maior que o membro SizeOfRawData , a seção será preenchida com zeros. Esse campo é válido apenas para imagens executáveis e deve ser definido como 0 para arquivos de objeto.
VirtualAddress
O endereço do primeiro byte da seção quando carregado na memória, em relação à base de imagem. Para arquivos de objeto, esse é o endereço do primeiro byte antes da aplicação da realocação.
SizeOfRawData
O tamanho dos dados inicializados no disco, em bytes. Esse valor deve ser um múltiplo do membro FileAlignment da estrutura IMAGE_OPTIONAL_HEADER . Se esse valor for menor que o membro VirtualSize , o restante da seção será preenchido com zeros. Se a seção contiver apenas dados não inicializados, o membro será zero.
PointerToRawData
Um ponteiro de arquivo para a primeira página dentro do arquivo COFF. Esse valor deve ser um múltiplo do membro FileAlignment da estrutura IMAGE_OPTIONAL_HEADER . Se uma seção contiver apenas dados não inicializados, defina que esse membro será zero.
PointerToRelocations
Um ponteiro de arquivo para o início das entradas de realocação da seção. Se não houver realocação, esse valor será zero.
PointerToLinenumbers
Um ponteiro de arquivo para o início das entradas de número de linha para a seção. Se não houver números de linha COFF, esse valor será zero.
NumberOfRelocations
O número de entradas de relocação da seção. Esse valor é zero para imagens executáveis.
NumberOfLinenumbers
O número de entradas de número de linha da seção.
Characteristics
As características da imagem. Os valores a seguir são definidos.
| Sinalizador |
Significado |
- 0x00000000
|
Reservado.
|
- 0x00000001
|
Reservado.
|
- 0x00000002
|
Reservado.
|
- 0x00000004
|
Reservado.
|
-
IMAGE_SCN_TYPE_NO_PAD
- 0x00000008
|
A seção não deve ser preenchida para o próximo limite. Esse sinalizador é obsoleto e foi substituído por IMAGE_SCN_ALIGN_1BYTES.
|
- 0x00000010
|
Reservado.
|
-
IMAGE_SCN_CNT_CODE
- 0x00000020
|
A seção contém um código executável.
|
-
IMAGE_SCN_CNT_INITIALIZED_DATA
- 0x00000040
|
A seção contém dados inicializados.
|
-
IMAGE_SCN_CNT_UNINITIALIZED_DATA
- 0x00000080
|
A seção contém dados não inicializados.
|
-
IMAGE_SCN_LNK_OTHER
- 0x00000100
|
Reservado.
|
-
IMAGE_SCN_LNK_INFO
- 0x00000200
|
A seção contém comentários ou outras informações. Isso só é válido para arquivos de objeto.
|
- 0x00000400
|
Reservado.
|
-
IMAGE_SCN_LNK_REMOVE
- 0x00000800
|
A seção não passará a fazer parte da imagem. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_LNK_COMDAT
- 0x00001000
|
A seção contém dados COMDAT. Isso só é válido para arquivos de objeto.
|
- 0x00002000
|
Reservado.
|
-
IMAGE_SCN_NO_DEFER_SPEC_EXC
- 0x00004000
|
Redefina as exceções especulativas que manipulam bits nas entradas TLB desta seção.
|
-
IMAGE_SCN_GPREL
- 0x00008000
|
A seção contém dados referenciados por meio do ponteiro 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
|
Alinha os dados em um limite de 1 byte. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_2BYTES
- 0x00200000
|
Alinha os dados em um limite de 2 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_4BYTES
- 0x00300000
|
Alinha os dados em um limite de 4 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_8BYTES
- 0x00400000
|
Alinhar dados em um limite de 8 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_16BYTES
- 0x00500000
|
Alinha os dados em um limite de 16 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_32BYTES
- 0x00600000
|
Alinha os dados em um limite de 32 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_64BYTES
- 0x00700000
|
Alinha os dados em um limite de 64 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_128BYTES
- 0x00800000
|
Alinha os dados em um limite de 128 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_256BYTES
- 0x00900000
|
Alinha os dados em um limite de 256 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_512BYTES
- 0x00A00000
|
Alinha os dados em um limite de 512 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_1024BYTES
- 0x00B00000
|
Alinha os dados em um limite de 1.024 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_2048BYTES
- 0x00C00000
|
Alinha os dados em um limite de 2.048 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_4096BYTES
- 0x00D00000
|
Alinha os dados em um limite de 4.096 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_ALIGN_8192BYTES
- 0x00E00000
|
Alinhar dados em um limite de 8192 bytes. Isso só é válido para arquivos de objeto.
|
-
IMAGE_SCN_LNK_NRELOC_OVFL
- 0x01000000
|
A seção contém relocações estendidas. A contagem de realocações para a seção excede os 16 bits reservados para ele no cabeçalho da seção. Se o campo NumberOfRelocations no cabeçalho da seção for 0xffff, a contagem real de realocação será armazenada no campo VirtualAddress da primeira realocação. Será um erro se IMAGE_SCN_LNK_NRELOC_OVFL for definido e houver menos de 0xffff relocações na seção.
|
-
IMAGE_SCN_MEM_DISCARDABLE
- 0x02000000
|
A seção pode ser descartada conforme necessário.
|
-
IMAGE_SCN_MEM_NOT_CACHED
- 0x04000000
|
A seção não pode ser armazenada em cache.
|
-
IMAGE_SCN_MEM_NOT_PAGED
- 0x08000000
|
A seção não pode ser paginada.
|
-
IMAGE_SCN_MEM_SHARED
- 0x10000000
|
A seção pode ser compartilhada na memória.
|
-
IMAGE_SCN_MEM_EXECUTE
- 0x20000000
|
A seção pode ser executada como um código.
|
-
IMAGE_SCN_MEM_READ
- 0x40000000
|
A seção pode ser lida.
|
-
IMAGE_SCN_MEM_WRITE
- 0x80000000
|
A seção pode ser gravada.
|
Requisitos
| Requisito |
Valor |
|
Cliente mínimo com suporte |
Windows XP [somente aplicativos da área de trabalho] |
|
Servidor mínimo com suporte |
Windows Server 2003 [somente aplicativos da área de trabalho] |
|
Cabeçalho |
winnt.h (inclua Windows.h) |
Confira também
ImageDirectoryEntryToDataEx
Estruturas ImageHlp
ImageRvaToSection
ImageRvaToVa
LOADED_IMAGE