我们有一个USB设备和驱动程序(.inf,libusb.dll,libusb.sys),可以使用Windows的设备安装向导(通过指向.inf文件)安装它。但是,我们需要在不使用向导的情况下安装驱动程序(被动地,因此用户不需要做任何事情)。有谁知道如何实现这一目标?
答案 0 :(得分:2)
您添加了“installer”标记,因此我假设您正在讨论某种安装包,例如Windows Installer,InstallShield InstallScript等。
如果是这种情况,您应该使用Microsoft的DIFx framework。
DIFx让您更容易创建 高品质的驱动程序包, 自定义驱动程序的安装 包,允许安装 驱动程序包与 应用软件,并使用 标准Windows API和安装 工具。 DIFx也使它更容易 最终用户诊断设备和 司机问题。最终用户可以 有信心,如果有必要,司机 可以卸载或回滚。
我使用了基于Windows Installer的安装和InstallScript安装的DIFx。非常人性化,易于调试和有效。
答案 1 :(得分:1)
我的同事提出了一个非常有效的答案。看来,除非硬件/驱动程序组合是WHQL签名,否则添加新硬件向导将始终出现在Win XP中。但是,使用以下方法可以让向导中的“搜索”按钮自动找到您的驱动程序。在Windows 7中,没有提示,设备安装就好了。但是,您需要注意64位计算机,因为它们的签名执行更加严格。
以下是the whole document的相关摘录:
使用DIFxAPi合并模块。 (阅读一个好的introduction to drivers in Windows, the use of INF files, and DIFxAPP。)DIFxAPI合并模块包含在WDK的'WDDK // redist \ DIFx \ DIFxApp \ MergeModule \'目录中。合并模块可以包含在MSI包中,可以设置为安装多个设备驱动程序。以下是使用DIFxAPP合并模块创建MSI的步骤:
使用Orca编辑MSI数据库表并将INF组件添加到DIFxAPP合并模块表。
在MsiDriverPackages表中创建一个新行。将Component值添加到Component字段中。可以使用以下flags(尽管Windows 7会忽略一些):
如果从MSI安装时出错(例如我收到错误代码2356,最终导致Flag
值无效),请使用Orca的Validate
函数查看是否有错误。编辑:修复这些错误仍然没有摆脱错误。我记得读过inf文件应该在他们自己的子目录中,但这也不能解决我的问题。