The Section Flags field indicates characteristics of the section.
Flag | Value | Description |
IMAGE_SCN_TYPE_REG | 0x00000000 | Reserved for future use. |
IMAGE_SCN_TYPE_DSECT | 0x00000001 | Reserved for future use. |
IMAGE_SCN_TYPE_NOLOAD | 0x00000002 | Reserved for future use. |
IMAGE_SCN_TYPE_GROUP | 0x00000004 | Reserved for future use. |
IMAGE_SCN_TYPE_NO_PAD | 0x00000008 | Section should not be padded to next boundary. This is obsolete and replaced by IMAGE_SCN_ALIGN_1BYTES. This is valid for object files only. |
IMAGE_SCN_TYPE_COPY | 0x00000010 | Reserved for future use. |
IMAGE_SCN_CNT_CODE | 0x00000020 | Section contains executable code. |
IMAGE_SCN_CNT_INITIALIZED_DATA | 0x00000040 | Section contains initialized data. |
IMAGE_SCN_CNT_UNINITIALIZED_DATA | 0x00000080 | Section contains uninitialized data. |
IMAGE_SCN_LNK_OTHER | 0x00000100 | Reserved for future use. |
IMAGE_SCN_LNK_INFO | 0x00000200 | Section contains comments or other information. The .drectve section has this type. This is valid for object files only. |
IMAGE_SCN_TYPE_OVER | 0x00000400 | Reserved for future use. |
IMAGE_SCN_LNK_REMOVE | 0x00000800 | Section will not become part of the image. This is valid for object files only. |
IMAGE_SCN_LNK_COMDAT | 0x00001000 | Section contains COMDAT data. See Section 5.5.6, “COMDAT Sections,” for more information. This is valid for object files only. |
IMAGE_SCN_MEM_FARDATA | 0x00008000 | Reserved for future use. |
IMAGE_SCN_MEM_PURGEABLE | 0x00020000 | Reserved for future use. |
IMAGE_SCN_MEM_16BIT | 0x00020000 | Reserved for future use. |
IMAGE_SCN_MEM_LOCKED | 0x00040000 | Reserved for future use. |
IMAGE_SCN_MEM_PRELOAD | 0x00080000 | Reserved for future use. |
IMAGE_SCN_ALIGN_1BYTES | 0x00100000 | Align data on a 1-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_2BYTES | 0x00200000 | Align data on a 2-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_4BYTES | 0x00300000 | Align data on a 4-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_8BYTES | 0x00400000 | Align data on a 8-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_16BYTES | 0x00500000 | Align data on a 16-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_32BYTES | 0x00600000 | Align data on a 32-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_64BYTES | 0x00700000 | Align data on a 64-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_128BYTES | 0x00800000 | Align data on a 128-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_256BYTES | 0x00900000 | Align data on a 256-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_512BYTES | 0x00A00000 | Align data on a 512-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_1024BYTES | 0x00B00000 | Align data on a 1024-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_2048BYTES | 0x00C00000 | Align data on a 2048-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_4096BYTES | 0x00D00000 | Align data on a 4096-byte boundary. This is valid for object files only. |
IMAGE_SCN_ALIGN_8192BYTES | 0x00E00000 | Align data on a 8192-byte boundary. This is valid for object files only. |
IMAGE_SCN_LNK_NRELOC_OVFL | 0x01000000 | Section contains extended relocations. |
IMAGE_SCN_MEM_DISCARDABLE | 0x02000000 | Section can be discarded as needed. |
IMAGE_SCN_MEM_NOT_CACHED | 0x04000000 | Section cannot be cached. |
IMAGE_SCN_MEM_NOT_PAGED | 0x08000000 | Section is not pageable. |
IMAGE_SCN_MEM_SHARED | 0x10000000 | Section can be shared in memory. |
IMAGE_SCN_MEM_EXECUTE | 0x20000000 | Section can be executed as code. |
IMAGE_SCN_MEM_READ | 0x40000000 | Section can be read. |
IMAGE_SCN_MEM_WRITE | 0x80000000 | Section can be written to. |
IMAGE_SCN_LNK_NRELOC_OVFL indicates that the count of relocations for the section exceeds the 16 bits reserved for it in section header. If the bit is set and the NumberOfRelocations field in the section header is 0xffff, the actual relocation count is stored in the 32-bit VirtualAddress field of the first relocation.