当硬件未连接时,如何卸载Windows驱动程序

14

我正在开发一个Windows C++应用程序,它驱动着一台插在USB上的电机控制器。 该控制器依赖于Ftdibus驱动程序,在我的电脑上可以正常工作。 然而,在一个测试计算机上,由于我弄乱了Ftdi驱动程序,当我插入控制器时,会出现BSoD(提到Ftdibus)。 我想清理驱动程序,但是:

  • 它们不会出现在Windows的“卸载程序”中
  • 我无法右键单击设备管理器中的控制器并选择“卸载”,因为我无法连接控制器(BSoD)
  • 我尝试了nirsoft的工具,它有一个卸载设备的选项,但它无法工作

我很无助,怎么才能解决这个问题呢?

PS:如果有关于驱动程序如何绑定到USB端口号的文档,我很愿意阅读相关内容。

3个回答

21
如果这是Vista及其以后的版本,则删除驱动程序包的支持方法是使用pnputil : http://msdn.microsoft.com/en-us/library/windows/hardware/ff550428(v=vs.85).aspx#deleting_a_driver_package_from_the_driver_store 仅仅删除服务是一个不好的主意,安装驱动程序放入的注册表中并不是唯一的东西。
我错过了您的帖子第二部分有关Windows如何将驱动程序绑定到USB设备。这里有一个很好的描述: http://blogs.msdn.com/b/oldnewthing/archive/2004/11/10/255047.aspx 如果需要更多详细信息,请随时联系我(我专门从事Windows驱动程序:))

@snoone 我该如何卸载并重新安装设备驱动程序? - John Strood

9

我有三种方法可以实现:

  1. 进入设备管理器,选择“查看”菜单并选择“显示隐藏设备”。找到设备描述并选择“卸载”菜单选项。[易]

  2. 您可以使用服务控制管理器命令行'SC'从注册表中删除设备驱动程序。 您需要知道安装的驱动程序名称。[中]

  3. 手动在注册表中删除驱动程序设置。 使用regedit,您可以删除驱动程序的注册表条目。 驱动程序的注册表设置位于“HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services”下。 找到驱动程序名称键并将其删除。 [难]


已经尝试过方法1:设备未显示。将尝试方法2和3。谢谢。 - Julien M
1
啊!我怎么知道这个驱动程序的名字是什么? - Michael

0

我会尝试使用this。 看起来它适用于你的情况。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅有链接的答案可能会失效。- 来自审查 - Bhagyesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接