使用通用 INF 文件

某些版本的 Windows仅使用桌面版上提供的驱动程序安装方法Windows 10子集。 非桌面版本的 INF 文件必须Windows 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 Manufacturer 节就有效。

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

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

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

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

  • 如果指定的 add-registry-section 中的条目具有 HKRreg-root 值,或以下情况,INF AddReg 指令有效:

    • 对于 COM 对象注册组件 (模型) ,可以在下面编写一个密钥:
      • HKCR
      • HKLM\SOFTWARE\Classes
    • 要创建 硬件媒体基础转换 ( MMFT) ,可以在下面编写密钥:
      • HKLM\SOFTWARE\Microsoft\Windows 媒体基础
      • HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows 媒体基础
      • HKLM\SOFTWARE\WOW3232Node\Microsoft\Windows 媒体基础
  • INF CopyFiles 指令 仅在目标 目录 为以下目录之一时 有效

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

另请参阅