使用通用 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 节,但以下情况除外:
- INF ClassInstall32 节
- INF DDInstall.CoInstallers 节
- INF DDInstall.FactDef 节
- INF DDInstall.LogConfigOverride 节
只要 TargetOSVersion 修饰不包含 ProductType 标志或 SuiteMask 标志,INF Manufacturer 节就有效。
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-section 中的条目具有 HKR 的 reg-root 值,或以下情况,INF AddReg 指令有效:
- 对于 COM 对象注册组件 (模型) ,可以在下面编写一个密钥:
- HKCR
- HKLM\SOFTWARE\Classes
- 要创建 硬件媒体基础转换 ( MMFT) ,可以在下面编写密钥:
- HKLM\SOFTWARE\Microsoft\Windows 媒体基础
- HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows 媒体基础
- HKLM\SOFTWARE\WOW3232Node\Microsoft\Windows 媒体基础
- 对于 COM 对象注册组件 (模型) ,可以在下面编写一个密钥:
INF CopyFiles 指令 仅在目标 目录 为以下目录之一时 有效: