我在用着 安装盾 安装我的应用程序、驱动程序和服务。仅当在设备管理器中找到其硬件 ID 时,我才需要安装即插即用驱动程序。驱动程序安装是使用 DPInst.exe 完成的。我的问题是,用户有时可以手动卸载驱动程序(安装后甚至卸载驱动程序) “未知司机” 在下面 “其他设备”),然后我无法在设备树中找到硬件 ID,尽管设备已插入。如果我在安装过程中重新扫描设备树 CM_Reenumerate_DevNode_Ex (代码相当于 “扫描新硬件”),我可以找到硬件 ID,但这会显示 “发现新硬件向导”.

是否有办法重新扫描设备树但抑制 “发现新硬件向导” 或者避免重新扫描但仍确保我的设备硬件 ID 存在于系统中?

有帮助吗?

解决方案

我正在写一个新的答案,因为我们已经对我的旧答案有太多评论,而且它的内容是基于对情况的一个小误解。

据我现在的了解,实际的问题是重新扫描设备时弹出的“添加新硬件”向导, 安装您的驱动程序。不幸的是,每当系统中找不到合适的驱动程序来处理新设备时,就会弹出此向导,因此为了克服它,唯一的选择是确保系统中存在这样的驱动程序。这导致我可以看到两种可能的解决方案:

  1. 首先进行软件安装,并确保您的驱动程序适合该设备(inf 格式正确,并且您具有 WHQL 签名)。据我了解,这不是一个选项,因为您不想在未连接设备的计算机上安装驱动程序(我很想听听为什么)。
  2. 确保系统中的其他驱动程序适合处理它。在这种情况下,您需要选择一种内置驱动程序(如果它充当设备的功能驱动程序,则不会造成严重破坏),并为您的设备提供一个匹配的兼容 ID - 一个会导致找到合适的内置驱动程序。这样,您就不必在重新扫描设备后等待用户,但根据您的设备,找到合适的内置驱动程序可能是不可能的。

其他提示

听起来你的处理方式是错误的。如果您有基于 MSI 的安装,为什么不使用 DIFxApp 而不是 DPInst?至于“发现新硬件”向导,您需要做两件事:

  1. 确保您的 inf 文件正确(以便您的驱动程序与硬件 ID 关联)
  2. 从 MS 获取 WHQL 签名。XP 需要此步骤,因为不受信任的驱动程序不会自动分配给设备。在 Vista 和 7 中,您可以自己对驱动程序进行数字签名,但在安装过程中您会收到警告,询问用户是否愿意信任该发布者(您)。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top