清除系统USB设备历史记录工具DeviceClean
前几天我写发文:固件更改USB摄像头名称不生效,网址为:https://www.usbzh.com/article/detail-1204.html
由于自己本身就是一个USB开发者,所以其实针对上以情况,我也经常遇到。但由于自己研究过,知其原理,可以手动搞定。但是对于一些不懂原理的人,对此根本束手无策。
另外,就算知道了原理,如果系统中有大量的此类设备,如果一个一个的手动搞起来,也是一件非常麻烦的事。所以本着本人一懒到底的一贯作风,毅然决定搞一个工具来。
软件最初定义为USBClean,不过为了更加广泛的支持,从USB扩展到系统中所有的设备,故最终定名为DeviceClean,中文名设备清除工具。
但是系统中不光在不存在的设备,还有一些其它错误状态的设备,故为了更广泛地支持,我们可以根据错误码来枚举系统中所有该错误号的设备。
关于错误号的定义可详见:设备管理器设备状态码 https://www.pnpon.com/article/detail-562.html
设备状态错误码的获取使用的关键函数为:CM_Get_DevNode_Status。不过使用这个函数有一个坑,本人坚信微软件绝不会出错,搞了一下午不信邪地搞了很久,还是有问题。后来经过看查别人的实现方式才算放弃,这应该就是微软的一个坑。也是很无奈。
DeviceClean使用
本人当前只编译了X64版本,32位的就不支持了。反正现在基本上都是64位系统了。软件的界面如下:
默认的错误号为45,即不在线的设备。
我们可以通过选中我们需要清除的设备,然后右键清除这些历史记录。
另外,为了进行标记,这里本人只列出了设备的友名,实例路径,驱动类和服务名。
DeviceClean下载
QQ群1:952873936
QQ群2:580684376
USB调试工具:https://www.usbzh.com/article/detail-1192.html