Using a Universal INF File(使用通用 INF 文件)

某些版本的 Windows 只使用 Windows 10 桌面版中可用的驱动程序安装方法的子集。 用于非桌面版 Windows 的 INF 文件只能执行 INF 文件中完整描述的添加操作。 使用此类受限语法的 INF 文件称为通用 INF 文件

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

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

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

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

如果要生成 Windows 桌面驱动程序包,则不必使用通用 INF 文件,但由于其性能优势,建议使用通用 INF 文件。

在通用 INF 文件中,哪些 INF 部分无效?

可以在通用 INF 文件中使用任何系统定义的 INF 部分,但以下情况除外:

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

INF DefaultInstall 部分只有在具有体系架构修饰(例如 [DefaultInstall.NTAMD64])时才有效。

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

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

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

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

    • 要注册组件对象模型 (COM) 对象,可以在以下项下编写一个项:
      • HKCR
      • HKLM\SOFTWARE\Classes
    • 要创建硬件媒体基础转换 (MFT),可以在以下项下编写一个项:
      • HKLM\SOFTWARE\Microsoft\Windows Media Foundation
      • HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation
      • HKLM\SOFTWARE\WOW3232Node\Microsoft\Windows Media Foundation
  • INF CopyFiles 指令只有在 destination directory 是下列 dirids 之一时方才有效:

    • 11
    • 12
    • 13(请参阅从 Driverstore 运行
      注意:CopyFiles 不可用于重命名 DestinationDirs 包括 dirid 的文件 13。
    • 10,SysWOW64
    • 10,特定于供应商的子目录名称
      注意:在 Windows 10 版本 1709 中,使用 dirid 10 和特定于供应商的子目录名称在通用 INF 中是有效的,正如使用 InfVerif 工具所衡量的那样。 在更高版本中,该值可能不受支持。 建议改用 dirid 13。

另请参阅