使用通用 INF 文件

某些版本的 Windows 仅使用 Windows 10 Desktop 上提供的一部分驱动程序安装方法。 非桌面版 Windows 的 INF 文件必须仅执行 INF 文件中完全描述的累加操作。 具有此类受限语法的 INF 文件称为通用 INF 文件

通用 INF 文件可预测地安装,每次的结果相同。 安装结果不依赖于系统提供的设备安装组件之外的组件的执行。 例如,共同安装程序引用在通用 INF 文件中无效,因为要求附加 DLL 中的代码作为安装的一部分运行意味着系统无法仅从 INF 文件确定安装结果。

若要测试 INF 是否是通用的,请使用 infverif /u

Windows 驱动程序必须通过 infverif /w,该测试/u以及驱动程序包隔离

有关 InfVerif 选项的列表,请参阅 从命令行运行 InfVerif

如果要生成 Windows 桌面驱动程序包,则无需使用通用 INF 文件,但由于性能优势,建议这样做。

哪些 INF 节在通用 INF 文件中无效?

可以在通用 INF 文件中使用任何系统定义的 INF 节,但以下各项除外:

只要 TargetOSVersion 修饰不包含 ProductType 标志或 SuiteMask 标志,INF 制造商部分就有效。

仅当 INF DefaultInstall 节具有体系结构修饰时有效,例如 [DefaultInstall.NTAMD64]

哪些 INF 指令在通用 INF 文件中无效?

可以在通用 INF 文件中使用任何系统定义的 INF 指令,但以下各项除外:

以下指令有效,但有一些注意事项:

  • 如果指定 add-registry-节中的条目的 reg-root 值为 HKR,或以下情况下,INF AddReg 指令有效:

    • 若要注册 组件对象模型 (COM) 对象,可以在以下项下编写密钥:
      • HKCR
      • HKLM\SOFTWARE\Classes
    • 若要创建 硬件媒体基础转换 (MCT) ,可以在以下位置编写密钥:
      • HKLM\SOFTWARE\Microsoft\Windows Media Foundation
      • HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation
      • HKLM\SOFTWARE\WOW3232Node\Microsoft\Windows Media Foundation
  • INF CopyFiles 指令 仅当 目标目录 是以下 任一项时有效:

    • 11
    • 12
    • 13 (请参阅从驱动程序存储) 运行
      注意: CopyFiles 不能用于重命名 DestinationDirs 包含 dirid 13 的文件。
    • 10,SysWOW64
    • 10,特定于供应商的子目录名称
      注意:在 Windows 10版本 1709 中,使用 dirid 10 和特定于供应商的子目录名称在通用 INF 中有效,如使用 InfVerif 工具测量的那样。 在更高版本中,可能不支持此值。 建议移动到 dirid 13。

另请参阅