既然插入和弹出设备时系统有声音提示,那说明物理连接应该是没有问题的,所以极有可能是软件故障。通过google那个unknown usb device的硬件id,发现这个id对应的硬件和vmware有关,于是很容易联想到是VMware的USB功能导致的,把VMUSBArbService这个服务停掉后,拨下对应的设备再次插上,这次终于被正常识别了。
问题就出在VMware USB这个服务上面。这个服务的主要用于把接入宿主机的USB设备接入到虚拟系统中这个功能,这个功能具体是如何实现我们不必深究,但过程有必要说一下。当把一个USB设备插入宿主机之后,vmware会默认把这个设备直接接入虚拟系统中去(除非在虚拟机USB选项里面禁用了自动接入USB设备这个功能),此时,VMware就会为这个USB设备加载一个名叫VMware USB Device的驱动,推测这个驱动就是用于把USB设备接入虚拟系统中。正常情况下,这个驱动加载不会出问题,驱动加载完成之后,USB设备就会被接入到虚拟系统中去,而在宿主系统中这个USB设备就会变成VMware USB Device这个设备,而不再是原来的设备名了,也就是说此时该USB设备只能在虚拟系统里面使用,宿主机就已经无法再使用这个USB设备了。
VMware对于USB设备的接入不知道是以什么样的方式来识别的,之所以会造成上面的“故障”,很明显在加载VMware USB Device这个驱动的时候出了问题,造成了该驱动无法被正常加载,然后就会出现一个unknown usb device,如此一来,这个设备在宿主机和虚拟机都无法使用了,也就造成了对应的USB接口坏掉了的假象。
当然这只是推测,具体到底是什么情况还不得而知。而且奇怪的是,假设VMware USB Device这个驱动未被正常加载,那应该只是对于那一个设备无法正常使用,而不应该造成那个USB接口都不能使用。当然这可能也是VMware 的一个小bug了吧。