You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Difxapp安装驱动未执行INF的DefaultInstall区段,如何用原生Wix解决

问题根因

DifxApp框架默认仅适配带硬件ID匹配的即插即用(PnP)驱动,你的驱动属于无关联硬件的非PnP内核驱动,且INF缺失DifxApp要求的必要区段,因此仅会将驱动导入驱动存储,不会触发DefaultInstall执行。

原生WiX配置修正方案

无需自定义操作,按以下要求调整即可直接通过DifxApp完成安装:

  • 修正INF文件结构:在现有INF末尾补充Manufacturer和Models区段,添加一个伪造的硬件ID即可,示例如下:
[Manufacturer]
%ManufacturerName%=Standard,NTamd64

[Standard.NTamd64]
%DeviceDesc%=MyDriver_Install, Root\MyDriver

[Strings]
ManufacturerName="Your Company"
DeviceDesc="My Kernel Driver"

上述配置是DifxApp识别驱动安装逻辑的必要条件,不会实际绑定硬件设备

  • 调整WiX DifxApp配置:将Legacy属性设为yes,同时将驱动相关文件的Vital属性改为yes,避免安装过程中文件校验异常跳过驱动部署,修正后的配置如下:
<Component Id="DriverComponents" Guid="{someGuid}" Win64="yes">
  <difxapp:Driver AddRemovePrograms="yes" DeleteFiles="yes" Legacy="yes" PlugAndPlayPrompt="no" ForceInstall="yes"/>
  <File Id="MyDriver.inf" Name="MyDriver.inf" Vital="yes" />
  <File Id="MyDriver.cat" Name="MyDriver.cat" Vital="yes" />
  <File Id="MyDriver.sys" Name="MyDriver.sys" Vital="yes" KeyPath="yes" />
</Component>

ForceInstall="yes"可覆盖驱动存储中同版本驱动的缓存,避免之前的测试残留导致安装失败

  • 校验INF区段匹配:确保64位驱动的DefaultInstall区段带有ntamd64后缀,即DefaultInstall.ntamd64、DefaultInstall.ntamd64.Services等,DifxApp在64位系统下不会执行无平台后缀的DefaultInstall区段,这也是右键安装可以执行、DifxApp不执行的常见差异点:右键安装会自动适配当前平台调用对应区段,DifxApp要求明确指定平台后缀。

验证方法

调整后重新打包安装,查看setupapi.dev.log会出现对应伪造硬件ID的PnP安装日志,DefaultInstall区段的服务注册、注册表修改逻辑会正常执行,卸载时DifxApp也会自动处理驱动卸载、服务清除逻辑,无需额外处理升级、回滚场景。

内容的提问来源于stack exchange,提问作者Ryhor Gunko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:45:07