事情是这样的,我有一个装了 Windows XP SP3 (确切的说是 FLP ,不过两个系统无本质区别)的 VM ,用来开开网银,量产下 U 盘什么的。结果某天把自己一块 UT161 主控的板子玩坏了,而这个又老又罕见的主控今后是不打算见到了,所以就把粗糙的 UT161 量产软件卸载了。这一卸不要紧,虚拟机里面的 Windows 直接不认 U 盘了。
其具体症状为:插入 U 盘后 Windows 提示找到新硬件,然后弹出安装驱动程序的对话框,自动搜索的话一闪而过就显示失败。最后 U 盘无法正常访问。
由于正常状况下 UMSD ( USB Mass Storage Device )是不需要别的驱动的,这里却提示安装驱动程序,并且搜索一闪而过就报告失败,所以估计到是 Windows 自带的 UMSD 驱动坏掉了。
询问 @zeroomega 之后得知 UMSD 的驱动主要是 usbstor.sys ,但是发现它正好好的躺在 %windir%\system32\drivers 里面。正当一筹莫展的时候我突然想到了多年没有关注的 %windir%\INF 文件夹。进去一看,果然有 usbstor 开头的几个文件,但是 usbstor.inf 失踪了。狂喜,从网上拖了个 usbstor.inf 下来,拷进去,然后 U 盘读写就 OK 了。
没想到这事儿还没完。
后来想整整一块 UT165 主控的山寨盘子,于是安装了 UT165 的量产工具,但是无论如何不认盘,而且界面反应极其迟钝。一开始我以为是版本的问题,后来换成已知能够工作的版本结果还是有一样的故障。这样我就意识到其实 UMSD 驱动实际上没有根本修好。
摸索一阵子以后发现应该这样:
- 卸载已经安装的量产软件;
- 删除 %windir%\INF 下面的 usbstor.inf 、usbstor.pnf 以及量产工具生成的两个备份文件 usbstor.ibk 、usbstor.pbk ;
- 找个正常的 WinXP SP3 的机器,拷贝 %windir%\INF\usbstor.inf 、%windir%\INF\usbstor.pnf 、%windir%\system32\usbstor.sys (以防万一 sys 也覆盖掉吧);
- 用它们覆盖掉自己机器上对应的文件;
- 重启机器,干该干的事。
之所以第一次失败,除了没有考虑两个备份文件跟 usbstor.pnf 以外,还有一个原因就是网上流传的 usbstor.inf 不知道是哪个系统的,大小跟原版 WinXP SP3 的不一样。
附送相关文件大小及 MD5 校验和:
29138 usbstor.inf 36988 usbstor.PNF 26368 USBSTOR.SYS 4514e7687238f6c19d380ee950b4b5b2 usbstor.inf b59f055cbdf4e3b218db91a2a7e7b980 usbstor.PNF a32426d9b14a089eaa1d922e0c5801a9 USBSTOR.SYS
ITE/USBest方案,在量产工具里勾选“驱动”-“卸载驱动”,每次关闭量产工具就会把驱动复原了。
UT165的MFPT 1.65.20.0和IT1169的DtMPTool 1.69.7.0亲测可用。(我的Kingmax牛年限量版啊。。。)