预安装WinXP USB驱动程序,无需交互即可连接设备

use*_*987 5 usb installer windows-xp driver

我们是一家小型硬件制造商.我们的大多数产品都使用USB对所用的控制器进行编程.目前的情况是对硬件(组装处理器的一部分)进行编程是相当费力的.每次插入新USB设备时,Windows都会提示安装驱动程序.这意味着对于每个新产品,我们必须经历"不,不要上网" - >"是,自动搜索" - >"完成"的过程.我们甚至不得不为每种产品做两次.

我一直在试验Windows预安装程序(DPInst),但这似乎只是促成了成功的"是,自动搜索"部分.有没有办法在插入USB设备后完全自动安装驱动程序?

亲切的问候,

罗纳德

Wil*_*ean 7

我认为你的设备有一个独特的USB序列号,因此每一个都被检测为一个以前从未见过的新设备.

如果是这样,那么解决方案就是这个,来自http://www.lvr.com/usbfaq.htm:

在设备测试期间,我们附加了许多相同的设备,除了序列号.如何在每次连接设备时阻止Windows要求安装新驱动程序?

下面介绍的方法会导致Windows 2000和XP忽略设备的序列号.建议仅用于测试环境.

此注册表项控制Windows是使用还是忽略设备序列号:

[HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET \控制\ UsbFlags]

尽管不建议采用这种方法,但可以忽略所有序列号.要忽略所有序列号,请在上面的键中将此值更改为零:

GlobalDisableSerNumGen = 1

要忽略单个设备的序列号,请在上面的...\UsbFlags键下创建一个条目.名称必须以"IgnoreHWSerNum"开头,后跟设备的供应商和产品ID.值为1 ="禁用序列号".

示例(供应商ID = 0925h,产品ID = 016Ah):

IgnoreHWSerNum0925016A = 1

另一种硬件/固件解决方案是在生产过程中禁用设备USB序列号(例如,使用链接,可能是由测试夹具制作的链接).如果没有USB序列号,Windows将根据其在连接树中的位置为设备分配伪序列号.这在生产运行期间不太可能发生变化,因此所有设备都将被视为相同,Windows不会对新驱动程序的内容感到烦恼.


Ole*_*leg 4

5年前我也遇到过同样的问题。

主要问题是相应设备即插即用后USB驱动程序的安装是在LocalSystem帐户进行的。为了不出现安全问题,Microsoft 允许静默安装仅由 Microsoft 签名的驱动程序。从 Windows Server 2003 开始​​,有记录的方法(请参阅http://www.microsoft.com/whdc/driver/install/authenticode.mspx)。

如果您有受管理的公司环境(您可以准备将​​使用即插即用设备的计算机),则有一种解决方法可以解决 Windows XP 上的问题。五年前我向我的一位客户推荐了它。它在 10000 台 Windows XP 计算机的环境中运行了大约 5 年,运行完美。

该解决方案的想法非常简单:您的驱动程序(例如 CAT 文件)必须使用以下签名进行签名:

  • 具有 1.3.6.1.5.5.7.3.3(“代码签名”)和 1.3.6.1.4.1.311.10.3.6(“Windows 系统组件验证”)OID 作为增强型密钥使用 (EKU) 扩展
  • 证书或其父证书必须安装在计算机的(受信任的根证书)或AuthRoot(第三方根证书颁发机构)证书存储中

如果您在 Windows XP 计算机上执行此操作,操作系统将像 Microsoft 签名驱动程序一样解释您的驱动程序。

您还应该在注册表中插入驱动程序源的路径。