Inf2Cat
Inf2Cat (Inf2Cat.exe) 是一种命令行工具,用于确定 驱动程序包的 INF 文件是否可以对指定的 Windows 版本列表进行数字签名。 如果是这样,Inf2Cat 将生成应用于指定 Windows 版本的未签名 目录文件 。
Inf2Cat /driver:
PackagePath
/os:
WindowsVersionList [/nocat] [/verbose] [/?] [other switches]
Inf2Cat 工具位于 WDK 的 Program Files\Windows Kits\8.0\bin\x86 或 Program Files (x86) \Windows Kits\8.0\bin\x86 文件夹中。
如果在生成驱动程序时看到 DriverVer set to a date in the future
,请更改驱动程序包项目设置,以便 Inf2Cat 设置 /uselocaltime
。 为此,请使用“配置属性”->“Inf2Cat”->“常规”->“使用本地时间”。 现在,Stampinf 和 Inf2Cat 都使用本地时间。
如果看到 An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) Signability test failed.
,请尝试以下解决方法之一:
- 将项目的 inf2cat 设置设置为
/nocat
,然后手动运行 inf2cat。 - 从
\x86
活动 WDK 的 文件夹中删除inf2cat.exe.manifest
,使该工具在 Visual Studio 中运行。
指定包含驱动程序包的 INF 文件的目录的路径。 如果指定的目录包含多个驱动程序包的 INF 文件,则 Inf2Cat 将为每个驱动程序包创建目录文件。
备注
可以使用 /drv: 开关代替 /driver: 开关。
配置 Inf2Cat 以验证 驱动程序包 是否符合指定 Windows 版本的签名要求,但不生成目录文件。
配置 Inf2Cat 以验证 驱动程序包的 INF 文件是否符合 WindowsVersionList 指定的 Windows 版本的签名要求。 WindowsVersionList 是一个逗号分隔的列表,其中包含以下一个或多个版本标识符。
Windows 版本 | 版本标识符 |
---|---|
Windows 11,版本 22H2 x64 Edition | 10_NI_X64 |
Windows 11,版本 22H2 Arm64 版本 | 10_NI_ARM64 |
Windows 11,版本 21H2 x64 Edition | 10_CO_X64 |
Windows 11,版本 21H2 Arm64 版本 | 10_CO_ARM64 |
Windows Server 2022 x64 版本 | ServerFE_X64 |
Windows Server 2022 Arm64 Edition | ServerFE_ARM64 |
Windows 10,版本 22H2、21H2、21H1、20H2、2004 x86 版本 | 10_VB_X86 |
Windows 10,版本 22H2、21H2、21H1、20H2、2004 x64 版本 | 10_VB_X64 |
Windows 10,版本 22H2、21H2、21H1、20H2、2004 Arm64 版本 | 10_VB_ARM64 |
Windows 10,版本 1909、1903 x86 版本 | 10_19H1_X86 |
Windows 10,版本 1909、1903 x64 版本 | 10_19H1_X64 |
Windows 10,版本 1909、1903 Arm64 Edition | 10_19H1_ARM64 |
Windows 10 版本 1809 x86 版本 | 10_RS5_X86 |
Windows 10 版本 1809 x64 版本 | 10_RS5_X64 |
Windows 10 版本 1809 Arm64 版本 | 10_RS5_ARM64 |
Windows Server 2019 x64 Edition | ServerRS5_X64 |
Windows Server 2019 Arm64 Edition | ServerRS5_ARM64 |
Windows 10,版本 1803 x86 Edition | 10_RS4_X86 |
Windows 10,版本 1803 x64 Edition | 10_RS4_X64 |
Windows 10,版本 1803 Arm64 Edition | 10_RS4_ARM64 |
Windows 10,版本 1709 x86 Edition | 10_RS3_X86 |
Windows 10,版本 1709 x64 Edition | 10_RS3_X64 |
Windows 10,版本 1709 Arm64 Edition | 10_RS3_ARM64 |
Windows 10,版本 1703 x86 Edition | 10_RS2_X86 |
Windows 10,版本 1703 x64 Edition | 10_RS2_X64 |
Windows 10版本 1607 x86 Edition | 10_AU_X86 |
Windows 10,版本 1607 x64 Edition | 10_AU_X64 |
Windows Server 2016 x64 版本 | SERVER2016_X64 |
Windows 10 x86 版本 | 10_X86 |
Windows 10 x64 版本 | 10_X64 |
Windows Server 2016 | Server10_X64 |
arm 上的Windows Server 2016 | Server10_ARM64 |
备注
从 Windows Server 2008 R2 开始,Windows Server 操作系统将不再支持基于 x86 的平台。
Inf2Cat 忽略版本标识符字符串的字母字符大小写。 例如,10_NI_X64和10_ni_X64都是Windows 11版本 22H2 x64 版的有效标识符。
运行驱动程序时间戳验证测试时使用本地时区。 默认使用 UTC。
将 Inf2Cat 配置为在命令窗口中显示详细信息。
将 Inf2Cat 配置为在命令窗口中显示帮助信息。
已弃用的命令行参数。
在 .inf 文件中添加 drm 签名属性以添加 drm 签名属性。
已弃用的命令行参数。
在 .inf 文件中添加 petrust 签名属性,以添加 petrust 签名属性。
在文件中包含页面哈希。 可选择性地后跟文件列表。
Inf2Cat 工具检查 驱动程序包的 INF 文件是否存在结构错误,并验证驱动程序包是否可以进行数字签名。 仅当 INF 文件中引用的所有文件都存在并且源文件位于正确的位置时,才能对驱动程序包进行签名。 如果 INF 文件无法签名或包含结构错误,则驱动程序包可能无法正确安装,或者在安装过程中可能错误地显示驱动程序签名警告对话框。
仅当在驱动程序包的 INF 文件中 指定了目录文件并且目录文件应用于一个或多个指定的 Windows 版本时,Inf2Cat 才会生成目录文件。 如果 INF 文件的 INF 版本部分 仅提供 CatalogFile=filename.cat 指令,则该目录文件将应用于整个驱动程序包。 若要支持 跨平台安装,INF 文件应包含 CatalogFile。PlatformExtension=unique-filename.cat 指令。
有关对驱动程序包进行签名的详细信息,请参阅 驱动程序签名。
若要使用 Inf2Cat,你必须是系统上管理员组的成员。
在以下示例中,c:\MyDriver 包含其 INF 文件为 MyInfFile.inf 的 驱动程序包 ,INF 文件中的 INF 版本部分仅包含以下 CatalogFile 指令:
[Version]
. . .
CatalogFile=MyCatalogFile.cat
. . .
对于此示例,以下 Inf2Cat 命令将验证是否可以为 Windows 10 版本 21H2、21H1、20H2、2004 x64 Edition 和 Windows 11 版本 21H2 x64 版本对驱动程序包进行签名。 如果可以为这些版本对包进行签名,Inf2Cat 将创建未签名的目录文件 MyCatalogFile.cat。
Inf2Cat /driver:C:\MyDriver /os:10_VB_X64,10_CO_X64
在以下示例中,c:\MyDriver 包含其 INF 文件为 MyInfFile.inf 的 驱动程序包 ,INF 文件中的 INF 版本 部分仅包含以下两个带有平台扩展的 CatalogFile 指令:
[Version]
. . .
CatalogFile.ntx86=MyCatalogFileX86.cat
CatalogFile.ntamd64=MyCatalogFileX64.cat
. . .
对于此示例,以下 Inf2Cat 命令将验证是否可以为 Windows 10 版本 1809 x86 Edition 和 X64 Edition 对驱动程序包进行签名。 此外,它还会检查 Windows Windows 10版本 1909、1903 x86 版本和 X64 版本是否可以对其进行签名。 如果可以为所有这些版本对包进行签名,Inf2Cat 将创建 MyCatalogFileX86.cat 和 MyCatalogFileX64.cat 的未签名目录文件。
Inf2Cat /driver:C:\MyDriver /os:10_RS5_X86,10_RS5_X64,10_19H1_X86,10_19H1_X64
有关如何使用 Inf2Cat 创建目录文件的详细信息,请参阅 为 PnP 驱动程序包创建目录文件。