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.,请尝试以下解决方法之一:

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

开关和参数

/driver:PackagePath

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

注意

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

/nocat

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

/os:WindowsVersionList

配置 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 版的有效标识符。

/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,你必须是系统上管理员组的成员。

示例

在以下示例中,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 驱动程序包创建目录文件