IMAGE_FILE_HEADER(winnt.h)- Win32 应用程序

内容

代表 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;

成员

机器

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

价值

意义

IMAGE_FILE_MACHINE_I386

0x014c

x86

IMAGE_FILE_MACHINE_IA64

0x0200

Intel Itanium

IMAGE_FILE_MACHINE_AMD64

0x8664

x64

章节数

节的数量。这表示节表的大小,紧随头部之后。请注意,Windows加载程序将节的数量限制为96。

TimeDateStamp

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

符号表指针

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

符号数量

符号表中的符号数量。

SizeOfOptionalHeader

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

特点

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

价值

意义

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

如果图像位于网络上,请将其复制到并从交换文件中运行。

图像文件系统

0x1000

这是一个系统文件。

IMAGE_FILE_DLL

0x2000

该图片是一个DLL文件。虽然它是一个可执行文件,但不能直接运行。

仅限图片上传系统

0x4000

该文件应仅在单处理器计算机上运行。

IMAGE_FILE_BYTES_REVERSED_HI

0x8000

这个单词的字节被颠倒了。这个标记已经过时了。

需求

需求

数值

最低支持客户端

Windows XP \[仅限桌面应用程序\]

最低支持的服务器

Windows Server 2003 [仅限桌面应用程序 ext]

标题

winnt.h(包括 Windows.h)

另请参阅

ImageHlp 结构

总结
COFF头部格式包括了机器类型、节的数量、时间戳、符号表指针、符号数量、可选头部大小和特征等成员。其中,Machine表示计算机的架构类型,NumberOfSections表示节的数量,TimeDateStamp表示图像创建时间戳,PointerToSymbolTable表示符号表偏移量,NumberOfSymbols表示符号数量,SizeOfOptionalHeader表示可选头部大小,Characteristics表示图像特征。特征包括文件是否可执行、是否有调试信息、是否为系统文件等。COFF头部格式在Windows系统中有一定的限制和要求,如节的数量限制为96,最低支持的客户端为Windows XP等。