2012-01-06 208 views
3

我正在开发一个Windows C++应用程序,用于驱动插入USB的电机控制器。 这个控制器依赖于Ftdibus驱动程序,它可以在我的电脑上正常工作。 但是,在一台测试计算机上,它曾经工作过,但是一旦我插入控制器,我就会与Ftdi驱动程序混淆,我得到一个BSoD(提及Ftdibus)。 我想清理的驱动器,但是:当硬件未连接时卸载Windows驱动程序

  • 它们不会出现在Windows的“卸载程序”
  • 我可以在设备管理器在控制器上没有右键并选择“卸载”,因为我不能插控制器(蓝屏)
  • 我想nirsoft tool有一个选项卸载设备,但它不会工作

我无言以对,我怎么能清理烂摊子?

PS:如果任何人有关于驱动程序如何绑定到一个USB端口号的文件,我就喜欢阅读关于这个问题的

回答

9

如果这是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驱动程序为生:))

+2

pnputil -f -d did it – 2012-01-11 17:48:47

+0

@snoone如何卸载并重新安装设备驱动程序? – 2016-04-26 19:22:13

1

我如何做到这一点是以下三种方式之一:

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

  2. 您可以使用Service Control Manager命令行'SC'从注册表中删除设备驱动程序。您需要知道安装的驱动程序名称。 [中]

  3. 手动删除注册表中的驱动程序设置。使用注册表编辑器,您可以删除驱动程序的注册表项。驱动程序注册表安装位于'HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services'下。找到驱动程序名称密钥并删除它。 [硬盘]

+0

已经尝试过的方法#1:设备的确没有出现。将尝试#2和#3。谢谢 – 2012-01-06 23:06:08

+1

啊!我应该怎么知道这个司机的名字是什么? – Michael 2017-09-10 20:26:47