我有一个正在上传的文件(一个 *.wim 文件,可以是 32 位或 64 位 - WAIK/WADK)。
wim 文件被复制到一个位置。
之前我们只支持 32 位,但现在为了 UEFI,我们需要同时支持 32 位(用于 BIOS)和 64 位(用于 UEFI)。
现在,上传完成后,目的是基于文件类型,我会将其复制到 32 位或 64 位文件夹。
如何区分它?
PS:删除了 win 标签,因为这更像是对文件类型的一般确定,而不是 WIM。
我有一个正在上传的文件(一个 *.wim 文件,可以是 32 位或 64 位 - WAIK/WADK)。
wim 文件被复制到一个位置。
之前我们只支持 32 位,但现在为了 UEFI,我们需要同时支持 32 位(用于 BIOS)和 64 位(用于 UEFI)。
现在,上传完成后,目的是基于文件类型,我会将其复制到 32 位或 64 位文件夹。
如何区分它?
PS:删除了 win 标签,因为这更像是对文件类型的一般确定,而不是 WIM。
如果我们不考虑 WIM 问题,只考虑找到编译 exe 文件(Portable Executable)的架构,这相对简单:
与您的情况相关的可能是机器类型 0x014c (i386) 和 0x8664 (AMD64)。
有关更多详细信息,您可以在此处从 Microsoft 获取 PE 规范。2.3.1 节列出了不同的机器类型。
您可能还对检查 COFF 标头的特征字段(最后两个字节)以将文件标识为可执行文件(而不是例如 DLL 文件)感兴趣。