/SECTION (Especificar atributos de seção)

/SECTION:name,[[!]{D|E|K|P|R|S|W}][,ALIGN=number]

Comentários

A opção /SECTION altera os atributos de uma seção, substituindo os atributos definidos quando o arquivo .obj da seção foi compilado.

Uma seção em um arquivo PE (executável portátil) é um bloco contíguo nomeado de memória que contém código ou dados. Algumas seções contêm código ou dados que seu programa declarou e que usa diretamente. Outras seções de dados são criadas para você pelo vinculador e gerenciador de biblioteca (LIB) e contêm informações vitais para o sistema operacional. Para obter mais informações, confira Formato PE.

Especifique dois-pontos (:) e um nome namede seção. A name diferencia maiúsculas de minúsculas.

Não use os nomes a seguir, pois eles entram em conflito com nomes padrão. Por exemplo, .sdata é usado em plataformas RISC:

  • .arch

  • .bss

  • .data

  • .edata

  • .idata

  • .pdata

  • .rdata

  • .reloc

  • .rsrc

  • .sbss

  • .sdata

  • .srdata

  • .text

  • .xdata

Especifique um ou mais atributos para a seção. Os caracteres de atributo, listados abaixo, não diferenciam maiúsculas de minúsculas. Você deve especificar todos os atributos que deseja que a seção tenha. Um caractere de atributo omitido faz com que esse bit de atributo seja desativado. Se você não especificar R, W nem E o status existente de leitura, gravação ou executável permanecerá inalterado.

Para negar um atributo, preceda seu caractere com um ponto de exclamação (!). Os significados dos caracteres de atributo estão mostrados nesta tabela:

Character Atributo Significado
E Executar A seção é executável
R Ler Permite operações de leitura nos dados
W Gravar Permite operações de gravação nos dados
S Compartilhado Compartilha a seção entre todos os processos que carregam a imagem
D Descartável Marca a seção como descartável
K Cacheable Marca a seção como não armazenável em cache
P Paginável Marca a seção como não paginável

K e P são incomuns na medida em que os sinalizadores de seção que correspondem a eles são usados no sentido negativo. Se você especificar um deles na seção .text usando a opção /SECTION:.text,K, não haverá diferença nos sinalizadores de seção quando você executar DUMPBIN com a opção /HEADERS; a seção já estava implicitamente armazenada em cache. Para remover o padrão, especifique /SECTION:.text,!K. O DUMPBIN revela características de seção, incluindo "Não Armazenado em Cache".

Uma seção no arquivo PE que não tem E, Rnem W definido, provavelmente é inválida.

O argumento ALIGN=number permite que você especifique um valor de alinhamento para uma determinada seção. O argumento number está em bytes e deve ser uma potência de dois. Para obter mais informações, consulte /ALIGN.

Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para mais informações, consulte Definir propriedades de build e do compilador.

  2. Escolha a página de propriedades Configuration Properties>Linker>General.

  3. Modifique a propriedade Especificar atributos de seção. Escolha OK ou Aplicar para salvar as alterações.

Para definir esta opção do vinculador por meio de programação

Confira também

Referência de vinculador MSVC
Opções do vinculador MSVC