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 文件夹中。

Troubleshooting

如果在生成驱动程序时看到 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.,请尝试以下解决方法之一:

  1. 将项目的 inf2cat 设置设置为 /nocat 并手动运行 inf2cat。
  2. \x86活动 WDK 的文件夹中删除inf2cat.exe.manifest,导致该工具在 Visual Studio 中运行。

开关和参数

/driver:PackagePath

指定包含驱动程序包 INF 文件的目录的路径。 如果指定的目录包含多个驱动程序包的 INF 文件,Inf2Cat 将为每个驱动程序包创建目录文件。

注释

可以使用 /drv: 开关代替 /driver: switch。

/nocat

配置 Inf2Cat 以验证 驱动程序包 是否符合指定 Windows 版本的签名要求,但不生成目录文件。

/os:WindowsVersionList

配置 Inf2Cat 以验证 驱动程序包的 INF 文件是否符合 WindowsVersionList 指定的 Windows 版本的签名要求。 WindowsVersionList 是一个逗号分隔的列表,其中包含以下一个或多个版本标识符。

Windows 版本 版本标识符
Windows 11 版本 25H2 x64 版本 10_GE_X64
Windows 11 版本 25H2 Arm64 版本 10_GE_ARM64
Windows 11 版本 24H2 x64 版本 10_GE_X64
Windows 11 版本 24H2 Arm64 版本 10_GE_ARM64
Windows Server 2025 x64 版本 Server2025_X64
Windows Server 2025 Arm64 版本 Server2025_ARM64
Windows 11 版本 22H2 x64 版本 10_NI_X64
Windows 11 版本 22H2 Arm64 版本 10_NI_ARM64
Windows 11 版本 21H2 x64 版本 10_CO_X64
Windows 11 版本 21H2 Arm64 版本 10_CO_ARM64
Windows Server 2022 x64 版本 ServerFE_X64
Windows Server 2022 Arm64 版本 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 版本 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 版本 ServerRS5_X64
Windows Server 2019 Arm64 版本 ServerRS5_ARM64
Windows 10 版本 1803 x86 版本 10_RS4_X86
Windows 10 版本 1803 x64 版本 10_RS4_X64
Windows 10 版本 1803 Arm64 版本 10_RS4_ARM64
Windows 10 版本 1709 x86 版本 10_RS3_X86
Windows 10 版本 1709 x64 版本 10_RS3_X64
Windows 10 版本 1709 Arm64 版本 10_RS3_ARM64
Windows 10 版本 1703 x86 版本 10_RS2_X86
Windows 10 版本 1703 x64 版本 10_RS2_X64
Windows 10 版本 1607 x86 版本 10_AU_X86
Windows 10 版本 1607 x64 版本 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 版本的有效标识符。

/uselocaltime

运行驱动程序时间戳验证测试时使用本地时区。 默认情况下使用 UTC。

/verbose

将 Inf2Cat 配置为在命令窗口中显示详细信息。

/?

将 Inf2Cat 配置为在命令窗口中显示帮助信息。

/drm

已弃用的命令行参数。
在 .inf 文件中添加 drm 签名属性以添加 drm 签名属性。

/体育

已弃用的命令行参数。
在 .inf 文件中添加 petrust 签名属性以添加 petrust 签名属性。

/pageHashes

包含包含文件的页哈希。 (可选)后跟文件列表。

注释

Inf2Cat 工具检查 驱动程序包的 INF 文件是否存在结构错误,并验证驱动程序包是否可以进行数字签名。 仅当 INF 文件中引用的所有文件都存在并且源文件位于正确的位置时,才能对驱动程序包进行签名。 如果无法对 INF 文件进行签名,或者如果它包含结构错误,则驱动程序包可能无法正确安装,或者可能会在安装过程中错误地显示驱动程序签名警告对话框。

仅当在驱动程序包的 INF 文件中指定 目录 文件并且目录文件适用于一个或多个指定的 Windows 版本时,Inf2Cat 才会生成目录文件。 如果 INF 文件的 INF 版本部分 仅提供 CatalogFile=filename.cat 指令,该目录文件将应用于整个驱动程序包。 若要支持 跨平台安装,INF 文件应包括 CatalogFile。PlatformExtension=unique-filename.cat 指令。

有关对驱动程序包进行签名的详细信息,请参阅 驱动程序签名

若要使用 Inf2Cat,你必须是系统上的 Administrators 组的成员。

例子

在以下示例中,c:\MyDriver 包含一个 驱动程序包 ,其 INF 文件为 MyInfFile.inf,INF 文件中的 INF 版本部分仅包含以下 CatalogFile 指令:

[Version]
. . .
CatalogFile=MyCatalogFile.cat
. . .

对于此示例,以下 Inf2Cat 命令将验证驱动程序包是否可以为 Windows 10 版本 21H2、21H1、20H2、2004 x64 版本和 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 版本和 X64 版本签名。 此外,它还检查 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 驱动程序包创建目录文件