Share via


IMAGE_SECTION_HEADER 構造体 (winnt.h)

イメージ セクションヘッダーの形式を表します。

構文

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;

メンバー

Name[IMAGE_SIZEOF_SHORT_NAME]

8 バイトの NULL 埋め込み UTF-8 文字列。 文字列の長さがちょうど 8 文字の場合、終端の null 文字はありません。 長い名前の場合、このメンバーにはスラッシュ (/) の後に、文字列テーブルへのオフセットである 10 進数の ASCII 表現が含まれます。 実行可能イメージは文字列テーブルを使用せず、8 文字を超えるセクション名をサポートしていません。

Misc

Misc.PhysicalAddress

ファイル アドレス。

Misc.VirtualSize

メモリに読み込まれた場合のセクションの合計サイズ (バイト単位)。 この値が SizeOfRawData メンバーより大きい場合、セクションはゼロで塗りつぶされます。 このフィールドは実行可能イメージに対してのみ有効であり、オブジェクト ファイルの場合は 0 に設定する必要があります。

VirtualAddress

メモリに読み込まれるときのセクションの最初のバイトのアドレス。イメージ ベースに対する相対アドレス。 オブジェクト ファイルの場合、これは再配置が適用される前の最初のバイトのアドレスです。

SizeOfRawData

ディスク上の初期化されたデータのサイズ (バイト単位)。 この値は、IMAGE_OPTIONAL_HEADER構造体の FileAlignment メンバーの倍数である必要があります。 この値が VirtualSize メンバーより小さい場合、セクションの残りの部分はゼロで塗りつぶされます。 セクションに初期化されていないデータのみが含まれている場合、メンバーは 0 になります。

PointerToRawData

COFF ファイル内の最初のページへのファイル ポインター。 この値は、IMAGE_OPTIONAL_HEADER構造体の FileAlignment メンバーの倍数である必要があります。 セクションに初期化されていないデータのみが含まれている場合は、このメンバーを 0 に設定します。

PointerToRelocations

セクションの再配置エントリの先頭へのファイル ポインター。 再配置がない場合、この値は 0 です。

PointerToLinenumbers

セクションの行番号エントリの先頭へのファイル ポインター。 COFF 行番号がない場合、この値は 0 です。

NumberOfRelocations

セクションの再配置エントリの数。 実行可能イメージの場合、この値は 0 です。

NumberOfLinenumbers

セクションの行番号エントリの数。

Characteristics

画像の特性。 次の値が定義されています。

フラグ 説明
0x00000000
予約済み。
0x00000001
予約済み。
0x00000002
予約済み。
0x00000004
予約済み。
IMAGE_SCN_TYPE_NO_PAD
0x00000008
セクションは、次の境界まで埋め込みできません。 このフラグは廃止され、IMAGE_SCN_ALIGN_1BYTES に置き換えられます。
0x00000010
予約済み。
IMAGE_SCN_CNT_CODE
0x00000020
セクションに実行可能コードが含まれています。
IMAGE_SCN_CNT_INITIALIZED_DATA
0x00000040
セクションに初期化されたデータが含まれています。
IMAGE_SCN_CNT_UNINITIALIZED_DATA
0x00000080
セクションに初期化されていないデータが含まれています。
IMAGE_SCN_LNK_OTHER
0x00000100
予約済み。
IMAGE_SCN_LNK_INFO
0x00000200
セクションにコメントまたはその他の情報が含まれています。 これは、オブジェクト ファイルの場合のみ有効です。
0x00000400
予約済み。
IMAGE_SCN_LNK_REMOVE
0x00000800
セクションはイメージの一部になりません。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_LNK_COMDAT
0x00001000
セクションに COMDAT データが含まれています。 これは、オブジェクト ファイルの場合のみ有効です。
0x00002000
予約済み。
IMAGE_SCN_NO_DEFER_SPEC_EXC
0x00004000
このセクションの TLB エントリ内のビットを処理する投機的例外をリセットします。
IMAGE_SCN_GPREL
0x00008000
セクションには、グローバル ポインターを介して参照されるデータが含まれています。
0x00010000
予約済み。
IMAGE_SCN_MEM_PURGEABLE
0x00020000
予約済み。
IMAGE_SCN_MEM_LOCKED
0x00040000
予約済み。
IMAGE_SCN_MEM_PRELOAD
0x00080000
予約済み。
IMAGE_SCN_ALIGN_1BYTES
0x00100000
データを 1 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_2BYTES
0x00200000
データを 2 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_4BYTES
0x00300000
データを 4 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_8BYTES
0x00400000
8 バイト境界にデータを配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_16BYTES
0x00500000
データを 16 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_32BYTES
0x00600000
データを 32 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_64BYTES
0x00700000
データを 64 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_128BYTES
0x00800000
データを 128 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_256BYTES
0x00900000
データを 256 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_512BYTES
0x00A00000
データを 512 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_1024BYTES
0x00B00000
データを 1024 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_2048BYTES
0x00C00000
データを 2048 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_4096BYTES
0x00D00000
データを 4096 バイト境界に配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_ALIGN_8192BYTES
0x00E00000
8192 バイト境界にデータを配置します。 これは、オブジェクト ファイルの場合のみ有効です。
IMAGE_SCN_LNK_NRELOC_OVFL
0x01000000
セクションに拡張された再配置が含まれています。 セクションの再配置の数が、セクション ヘッダーで予約されている 16 ビットを超えています。 セクション ヘッダーの NumberOfRelocations フィールドが0xffff場合、実際の再配置数は、最初の再配置の VirtualAddress フィールドに格納されます。 IMAGE_SCN_LNK_NRELOC_OVFL が設定されていて、セクション内の再配置が 0xffff よりも少ない場合は、エラーになります。
IMAGE_SCN_MEM_DISCARDABLE
0x02000000
セクションは必要に応じて破棄できます。
IMAGE_SCN_MEM_NOT_CACHED
0x04000000
セクションはキャッシュできません。
IMAGE_SCN_MEM_NOT_PAGED
0x08000000
セクションをページングできません。
IMAGE_SCN_MEM_SHARED
0x10000000
セクションはメモリ内で共有できます。
IMAGE_SCN_MEM_EXECUTE
0x20000000
セクションはコードとして実行できます。
IMAGE_SCN_MEM_READ
0x40000000
セクションは読み取ることができます。
IMAGE_SCN_MEM_WRITE
0x80000000
セクションに書き込むことができます。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winnt.h (Windows.h を含む)

こちらもご覧ください

ImageDirectoryEntryToDataEx

ImageHlp 構造体

ImageRvaToSection

ImageRvaToVa

LOADED_IMAGE