PE フォーマットファイルのセクションヘッダヘッダの情報を定義します。
#define IMAGE_SIZEOF_SHORT_NAME 8 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;
セクション名を表す8文字以内の ASCII 文字列が格納されます。文字列の長さが8文字の場合には、終端のヌル文字は付加されません。実行イメージでは8文字以上の文字列はサポートされません。
実行イメージでは、メモリ上にロードされたときの、セクションデータのサイズが格納されます。このサイズが SizeOfRawData メンバよりも大きい場合には、セクションの残りの部分は 0 で埋められます。
実行イメージファイルでは、メモリにロードされたときの、イメージのベースアドレスに対するセクションの先頭バイトの RVA が格納されます。
イメージファイルでは、ディスク上のセクションデータのサイズが格納されます。この値は、ファイルアライメント値の倍数に切り上げられます。
セクションデータの先頭へのファイルオフセットが格納されます。この値はファイルアライメント値の倍数になります。
セクションの再配置エントリへのファイルオフセットが格納されます。実行イメージでは 0 になります。
セクションの行番号エントリへのファイルオフセットが格納されます。通常、実行イメージでは 0 になります。
セクション内の再配置エントリの数が格納されます。実行イメージでは 0 になります。
セクション内の行番号エントリの数が格納されます。通常、実行イメージでは 0 になります。
セクションの特性を示すフラグが格納されます。
値 | 意味 |
---|---|
0x00000000 (IMAGE_SCN_TYPE_REG) | 予約されています。 |
0x00000001 (IMAGE_SCN_TYPE_DSECT) | |
0x00000002 (IMAGE_SCN_TYPE_NOLOAD) | |
0x00000004 (IMAGE_SCN_TYPE_GROUP) | |
0x00000008 (IMAGE_SCN_TYPE_NO_PAD) | セクションは次の境界まで埋め文字されません。これは、 IMAGE_SCN_ALIGN_1BYTES フラグに取って代わられており、現在では使われません。これはオブジェクトファイルでのみ有効です。 |
0x00000010 (IMAGE_SCN_TYPE_COPY) | 予約されています。 |
0x00000020 (IMAGE_SCN_CNT_CODE) | セクションに実行コードが含まれています。 |
0x00000040 (IMAGE_SCN_CNT_INITIALIZED_DATA) | セクションに初期化されたデータが含まれています。 |
0x00000080 (IMAGE_SCN_CNT_UNINITIALIZED_DATA) | セクションに初期化されていないデータが含まれています。 |
0x00000100 (IMAGE_SCN_LNK_OTHER) | 予約されています。 |
0x00000200 (IMAGE_SCN_LNK_INFO) | セクションにコメントまたは他の情報が含まれています。オブジェクトファイルでリンカに情報を渡したい場合などに使用されます。これはオブジェクトファイルでのみ有効です。 |
0x00000400 (IMAGE_SCN_TYPE_OVER) | 予約されています。 |
0x00000800 (IMAGE_SCN_LNK_REMOVE) | セクションはリンク時に削除されて、作成される実行イメージには含まれません。通常、 IMAGE_SCN_LNK_INFO フラグと組み合わせて指定されます。これはオブジェクトファイルでのみ有効です。 |
0x00001000 (IMAGE_SCN_LNK_COMDAT) | セクションに COMDAT データが含まれています。これはオブジェクトファイルでのみ有効です。 |
0x00002000 | 予約されています。 |
0x00004000 (IMAGE_SCN_NO_DEFER_SPEC_EXC) | |
0x00008000 (IMAGE_SCN_MEM_FARDATA) | |
0x00010000 (IMAGE_SCN_MEM_SYSHEAP) | |
0x00020000 (IMAGE_SCN_MEM_PURGEABLE, IMAGE_SCN_MEM_16BIT) | |
0x00040000 (IMAGE_SCN_MEM_LOCKED) | |
0x00080000 (IMAGE_SCN_MEM_PRELOAD) | |
0x00100000 (IMAGE_SCN_ALIGN_1BYTES) | データをそれぞれ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 バイト境界に合わせます。これらはオブジェクトファイルでのみ有効です。 |
0x00200000 (IMAGE_SCN_ALIGN_2BYTES) | |
0x00300000 (IMAGE_SCN_ALIGN_4BYTES) | |
0x00400000 (IMAGE_SCN_ALIGN_8BYTES) | |
0x00500000 (IMAGE_SCN_ALIGN_16BYTES) | |
0x00600000 (IMAGE_SCN_ALIGN_32BYTES) | |
0x00700000 (IMAGE_SCN_ALIGN_64BYTES) | |
0x00800000 (IMAGE_SCN_ALIGN_128BYTES) | |
0x00900000 (IMAGE_SCN_ALIGN_256BYTES) | |
0x00A00000 (IMAGE_SCN_ALIGN_512BYTES) | |
0x00B00000 (IMAGE_SCN_ALIGN_1024BYTES) | |
0x00C00000 (IMAGE_SCN_ALIGN_2048BYTES) | |
0x00D00000 (IMAGE_SCN_ALIGN_4096BYTES) | |
0x00E00000 (IMAGE_SCN_ALIGN_8192BYTES) | |
0x00F00000 (IMAGE_SCN_ALIGN_MASK) | 使用されません。 |
0x01000000 (IMAGE_SCN_LNK_NRELOC_OVFL) | セクションに拡張された再配置が含まれています。 |
0x02000000 (IMAGE_SCN_MEM_DISCARDABLE) | セクションはプロセスが開始された後で必要があれば破棄できます。例えば、再配置情報を含むセクションなどで使用されます。 |
0x04000000 (IMAGE_SCN_MEM_NOT_CACHED) | セクションはキャッシュできません。 |
0x08000000 (IMAGE_SCN_MEM_NOT_PAGED) | セクションはページアウトできません。 |
0x10000000 (IMAGE_SCN_MEM_SHARED) | セクションを、このイメージのすべての実行インスタンスにおけるメモリ中で共有できます。 |
0x20000000 (IMAGE_SCN_MEM_EXECUTE) | プロセスに対してメモリ中のセクションデータへの実行アクセスを許可します。 |
0x40000000 (IMAGE_SCN_MEM_READ) | プロセスに対してメモリ中のセクションデータへの読み取りアクセスを許可します。 |
0x80000000 (IMAGE_SCN_MEM_WRITE) | プロセスに対してメモリ中のセクションデータへの書き込みアクセスを許可します。 |
Windows 95 以降 / Windows NT 3.1 以降
HSP 変数 | メンバ | ||||
---|---|---|---|---|---|
メンバ名 | オフセット | サイズ | |||
scthdr.0 | Name | 0 | 8 | ||
scthdr.1 | |||||
scthdr.2 | Misc | VirtualSize / PhysicalAddress | 8 | 4 | |
scthdr.3 | VirtualAddress | 12 | 4 | ||
scthdr.4 | SizeOfRawData | 16 | 4 | ||
scthdr.5 | PointerToRawData | 20 | 4 | ||
scthdr.6 | PointerToRelocations | 24 | 4 | ||
scthdr.7 | PointerToLinenumbers | 28 | 4 | ||
scthdr.8 | 下位ワード | NumberOfRelocations | 32 | 2 | |
上位ワード | NumberOfLinenumbers | 34 | 2 | ||
scthdr.9 | Characteristics | 36 | 4 |