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 字串。 如果字串長度剛好是八個字元,則不會終止 Null 字元。 對於較長的名稱,此成員包含正斜線 (/) ,後面接著十進位數的 ASCII 表示法,該數位是字串數據表中的位移。 可執行檔映像不使用字串數據表,且不支持超過八個字元的區段名稱。

Misc

Misc.PhysicalAddress

檔案位址。

Misc.VirtualSize

載入記憶體時,區段的大小總計,以位元組為單位。 如果此值大於 SizeOfRawData 成員,則區段會填入零。 此欄位僅適用於可執行的影像,而且應該針對對象檔設定為 0。

VirtualAddress

載入記憶體時,區段第一個字節的位址,相對於映像基底。 對於對象檔,這是套用重新配置之前第一個字節的位址。

SizeOfRawData

磁碟上初始化數據的大小,以位元組為單位。 這個值必須是 IMAGE_OPTIONAL_HEADER 結構的 FileAlignment 成員的倍數。 如果此值小於 VirtualSize 成員,則區段的其餘部分會填入零。 如果區段只包含未初始化的數據,則成員為零。

PointerToRawData

COFF 檔案內第一頁的檔案指標。 這個值必須是 IMAGE_OPTIONAL_HEADER 結構的 FileAlignment 成員的倍數。 如果區段只包含未初始化的數據,請將此成員設定為零。

PointerToRelocations

區段重新配置項目開頭的檔案指標。 如果沒有重新配置,此值為零。

PointerToLinenumbers

區段行號項目開頭的檔案指標。 如果沒有 COFF 行號,此值為零。

NumberOfRelocations

區段的重新配置項目數目。 可執行檔影像的此值為零。

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 [僅限桌面應用程式]
標頭 winnt.h (包含 Windows.h)

另請參閱

ImageDirectoryEntryToDataEx

ImageHlp 結構

ImageRvaToSection

ImageRvaToVa

LOADED_IMAGE