使用通用 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 节,但以下各项除外:
- INF ClassInstall32 节
- INF DDInstall.CoInstallers 节
- INF DDInstall.FactDef 节
- INF DDInstall.LogConfigOverride 节
只要 TargetOSVersion 修饰不包含 ProductType 标志或 SuiteMask 标志,INF 制造商部分就有效。
仅当 INF DefaultInstall 节具有体系结构修饰时有效,例如 [DefaultInstall.NTAMD64]
。
哪些 INF 指令在通用 INF 文件中无效?
可以在通用 INF 文件中使用任何系统定义的 INF 指令,但以下各项除外:
- INF BitReg 指令
- INF DelFiles 指令
- INF DelProperty 指令
- INF DelReg 指令
- INF DelService 指令
- INF Ini2Reg 指令
- INF LogConfig 指令
- INF ProfileItems 指令
- INF RegisterDlls 指令
- INF RenFiles 指令
- INF UnregisterDlls 指令
- INF UpdateIniFields 指令
- INF UpdateInis 指令
以下指令有效,但有一些注意事项:
如果指定 add-registry-节中的条目的 reg-root 值为 HKR,或以下情况下,INF AddReg 指令有效:
INF CopyFiles 指令 仅当 目标目录 是以下 任一项时有效:
- 11
- 12
- 13 (请参阅从驱动程序存储) 运行
注意: CopyFiles 不能用于重命名 DestinationDirs 包含 dirid 13 的文件。 - 10,SysWOW64
- 10,特定于供应商的子目录名称
注意:在 Windows 10版本 1709 中,使用 dirid 10 和特定于供应商的子目录名称在通用 INF 中有效,如使用 InfVerif 工具测量的那样。 在更高版本中,可能不支持此值。 建议移动到 dirid 13。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈