winnt.h) (IMAGE_FILE_HEADER 结构

表示 COFF 标头格式。

语法

typedef struct _IMAGE_FILE_HEADER {
  WORD  Machine;
  WORD  NumberOfSections;
  DWORD TimeDateStamp;
  DWORD PointerToSymbolTable;
  DWORD NumberOfSymbols;
  WORD  SizeOfOptionalHeader;
  WORD  Characteristics;
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

成员

Machine

计算机的体系结构类型。 图像文件只能在指定的计算机或模拟指定计算机的系统上运行。 此成员可以是以下值之一。

含义
IMAGE_FILE_MACHINE_I386
0x014c
x86
IMAGE_FILE_MACHINE_IA64
0x0200
Intel Itanium
IMAGE_FILE_MACHINE_AMD64
0x8664
X64

NumberOfSections

节数。 这指示部分表的大小,该表紧跟在标头之后。 请注意,Windows 加载程序将节数限制为 96。

TimeDateStamp

图像时间戳的低 32 位。 这表示链接器创建映像的日期和时间。 根据系统时钟,该值以自 1970 年 1 月 1 日世界协调时间 (00:00:00) 午夜以来经过的秒数表示。

PointerToSymbolTable

符号表的偏移量(以字节为单位),如果没有 COFF 符号表,则为零。

NumberOfSymbols

符号表中的符号数。

SizeOfOptionalHeader

可选标头的大小(以字节为单位)。 对于对象文件,此值应为 0。

Characteristics

图像的特征。 此成员可以是以下一个或多个值。

含义
IMAGE_FILE_RELOCS_STRIPPED
0x0001
重定位信息已从文件中删除。 文件必须加载在其首选基址处。 如果基址不可用,加载程序将报告错误。
IMAGE_FILE_EXECUTABLE_IMAGE
0x0002
该文件是可执行的, (没有未解析的外部引用) 。
IMAGE_FILE_LINE_NUMS_STRIPPED
0x0004
从文件中删除了 COFF 行号。
IMAGE_FILE_LOCAL_SYMS_STRIPPED
0x0008
COFF 符号表条目已从文件中删除。
IMAGE_FILE_AGGRESIVE_WS_TRIM
0x0010
积极剪裁工作集。 该值已过时。
IMAGE_FILE_LARGE_ADDRESS_AWARE
0x0020
应用程序可以处理大于 2 GB 的地址。
IMAGE_FILE_BYTES_REVERSED_LO
0x0080
单词的字节反转。 此标志已过时。
IMAGE_FILE_32BIT_MACHINE
0x0100
计算机支持 32 位字。
IMAGE_FILE_DEBUG_STRIPPED
0x0200
调试信息已被删除并单独存储在另一个文件中。
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
0x0400
如果映像位于可移动媒体上,请将其复制到 并从交换文件运行它。
IMAGE_FILE_NET_RUN_FROM_SWAP
0x0800
如果映像位于网络上,请将其复制到 并从交换文件运行它。
IMAGE_FILE_SYSTEM
0x1000
映像是系统文件。
IMAGE_FILE_DLL
0x2000
图像是 DLL 文件。 虽然它是可执行文件,但不能直接运行。
IMAGE_FILE_UP_SYSTEM_ONLY
0x4000
文件应仅在单处理器计算机上运行。
IMAGE_FILE_BYTES_REVERSED_HI
0x8000
单词的字节反转。 此标志已过时。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winnt.h (包括 Windows.h)

另请参阅

IMAGE_NT_HEADERS

ImageHlp 结构