Représente le format d’en-tête de section image.
Syntaxe
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;
Membres
Name[IMAGE_SIZEOF_SHORT_NAME]
Chaîne UTF-8 remplie de 8 octets. Il n’existe aucun caractère null de fin si la chaîne contient exactement huit caractères. Pour les noms plus longs, ce membre contient une barre oblique (/) suivie d’une représentation ASCII d’un nombre décimal qui est un décalage dans la table de chaînes. Les images exécutables n’utilisent pas de table de chaînes et ne prennent pas en charge les noms de section de plus de huit caractères.
Misc
Misc.PhysicalAddress
Adresse du fichier.
Misc.VirtualSize
Taille totale de la section lorsqu’elle est chargée en mémoire, en octets. Si cette valeur est supérieure au membre SizeOfRawData , la section est remplie avec des zéros. Ce champ est valide uniquement pour les images exécutables et doit être défini sur 0 pour les fichiers objet.
VirtualAddress
Adresse du premier octet de la section lorsqu’elle est chargée en mémoire, par rapport à la base d’images. Pour les fichiers objet, il s’agit de l’adresse du premier octet avant l’application de la relocalisation.
SizeOfRawData
Taille des données initialisées sur le disque, en octets. Cette valeur doit être un multiple du membre FileAlignment de la structure IMAGE_OPTIONAL_HEADER . Si cette valeur est inférieure au membre VirtualSize , le reste de la section est rempli de zéros. Si la section contient uniquement des données non initialisées, le membre est égal à zéro.
PointerToRawData
Pointeur de fichier vers la première page du fichier COFF. Cette valeur doit être un multiple du membre FileAlignment de la structure IMAGE_OPTIONAL_HEADER . Si une section contient uniquement des données non initialisées, définissez ce membre sur zéro.
PointerToRelocations
Pointeur de fichier vers le début des entrées de déplacement pour la section. S’il n’y a pas de relocalisations, cette valeur est égale à zéro.
PointerToLinenumbers
Pointeur de fichier vers le début des entrées de numéro de ligne pour la section. S’il n’y a pas de numéros de ligne COFF, cette valeur est égale à zéro.
NumberOfRelocations
Le nombre d’entrées de relocalisation pour la section. Cette valeur est égale à zéro pour les images exécutables.
NumberOfLinenumbers
Le nombre d’entrées de numéro de ligne pour la section.
Characteristics
Caractéristiques de l’image. Les valeurs suivantes sont définies.
| Indicateur |
Signification |
- 0x00000000
|
Réservé.
|
- 0x00000001
|
Réservé.
|
- 0x00000002
|
Réservé.
|
- 0x00000004
|
Réservé.
|
-
IMAGE_SCN_TYPE_NO_PAD
- 0x00000008
|
La section ne doit pas être remplie jusqu’à la limite suivante. Cet indicateur est obsolète et est remplacé par IMAGE_SCN_ALIGN_1BYTES.
|
- 0x00000010
|
Réservé.
|
-
IMAGE_SCN_CNT_CODE
- 0x00000020
|
La section contient du code exécutable.
|
-
IMAGE_SCN_CNT_INITIALIZED_DATA
- 0x00000040
|
La section contient des données initialisées.
|
-
IMAGE_SCN_CNT_UNINITIALIZED_DATA
- 0x00000080
|
La section contient des données non initialisées.
|
-
IMAGE_SCN_LNK_OTHER
- 0x00000100
|
Réservé.
|
-
IMAGE_SCN_LNK_INFO
- 0x00000200
|
La section contient des commentaires ou d’autres informations. Ceci n’est valable que pour les fichiers objets.
|
- 0x00000400
|
Réservé.
|
-
IMAGE_SCN_LNK_REMOVE
- 0x00000800
|
La section ne fera pas partie de l’image. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_LNK_COMDAT
- 0x00001000
|
La section contient des données COMDAT. Ceci n’est valable que pour les fichiers objets.
|
- 0x00002000
|
Réservé.
|
-
IMAGE_SCN_NO_DEFER_SPEC_EXC
- 0x00004000
|
Réinitialisez les exceptions spéculatives qui gèrent les bits dans les entrées TLB pour cette section.
|
-
IMAGE_SCN_GPREL
- 0x00008000
|
La section contient des données référencées via le pointeur global.
|
- 0x00010000
|
Réservé.
|
-
IMAGE_SCN_MEM_PURGEABLE
- 0x00020000
|
Réservé.
|
-
IMAGE_SCN_MEM_LOCKED
- 0x00040000
|
Réservé.
|
-
IMAGE_SCN_MEM_PRELOAD
- 0x00080000
|
Réservé.
|
-
IMAGE_SCN_ALIGN_1BYTES
- 0x00100000
|
Alignez les données sur une limite de 1 octet. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_2BYTES
- 0x00200000
|
Alignez les données sur une limite de 2 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_4BYTES
- 0x00300000
|
Alignez les données sur une limite de 4 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_8BYTES
- 0x00400000
|
Aligner les données sur une limite de 8 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_16BYTES
- 0x00500000
|
Alignez les données sur une limite de 16 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_32BYTES
- 0x00600000
|
Alignez les données sur une limite de 32 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_64BYTES
- 0x00700000
|
Alignez les données sur une limite de 64 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_128BYTES
- 0x00800000
|
Alignez les données sur une limite de 128 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_256BYTES
- 0x00900000
|
Alignez les données sur une limite de 256 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_512BYTES
- 0x00A00000
|
Alignez les données sur une limite de 512 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_1024BYTES
- 0x00B00000
|
Alignez les données sur une limite de 1 024 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_2048BYTES
- 0x00C00000
|
Alignez les données sur une limite de 2 048 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_4096BYTES
- 0x00D00000
|
Alignez les données sur une limite de 4 096 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_ALIGN_8192BYTES
- 0x00E00000
|
Aligner les données sur une limite de 8192 octets. Ceci n’est valable que pour les fichiers objets.
|
-
IMAGE_SCN_LNK_NRELOC_OVFL
- 0x01000000
|
La section contient des relocalisations étendues. Le nombre de déplacement de la section dépasse les 16 bits qui lui sont réservés dans l’en-tête de section. Si le champ NumberOfRelocations dans l’en-tête de section est 0xffff, le nombre réel de réinstallations est stocké dans le champ VirtualAddress de la première réinstallation. Il s’agit d’une erreur si IMAGE_SCN_LNK_NRELOC_OVFL est défini et qu’il y a moins de 0xffff relocalisations dans la section.
|
-
IMAGE_SCN_MEM_DISCARDABLE
- 0x02000000
|
La section peut être ignorée si nécessaire.
|
-
IMAGE_SCN_MEM_NOT_CACHED
- 0x04000000
|
La section ne peut pas être mise en cache.
|
-
IMAGE_SCN_MEM_NOT_PAGED
- 0x08000000
|
La section ne peut pas être paginée.
|
-
IMAGE_SCN_MEM_SHARED
- 0x10000000
|
La section peut être partagée en mémoire.
|
-
IMAGE_SCN_MEM_EXECUTE
- 0x20000000
|
La section peut être exécutée en tant que code.
|
-
IMAGE_SCN_MEM_READ
- 0x40000000
|
La section peut être lue.
|
-
IMAGE_SCN_MEM_WRITE
- 0x80000000
|
La section peut être écrite.
|
Configuration requise
| Condition requise |
Valeur |
|
Client minimal pris en charge |
Windows XP [applications de bureau uniquement] |
|
Serveur minimal pris en charge |
Windows Server 2003 [applications de bureau uniquement] |
|
En-tête |
winnt.h (inclure Windows.h) |
Voir aussi
ImageDirectoryEntryToDataEx
Structures ImageHlp
ImageRvaToSection
ImageRvaToVa
LOADED_IMAGE