解决USB设备有时无法安全卸载的问题

类别:编程语言 点击:0 评论:0 推荐:
相信你一定经常遇到这种情况:在电脑的USB接口插入闪存使用完毕后,按照常规的操作点击任务栏右下角“拔下或弹出硬件”,接着点击“停止USB Mass Storage Device-驱动器”后,没有出现“USB Mass Storage Device设备现在可安全地从系统卸载”对话框,而是出现了另一个对话框“现在无法停止通用卷设备,请稍候再停止设备”。经过检查,闪存里的程序文件都已关闭,电脑和闪存之间也没有任何数据传输。无法安全卸载设备是没有道理的啊!
   那么到底是因为什么导致硬件无法拔出呢?笔者仔细思考了这个问题。想来想去,猜测闪存插入时在Windows任务管理器中应该会增加一个与之相对应的进程,硬件正常拔出时这个对应的进程自动结束,当这个进程不能正常结束时硬件也就无法正常拔出了。为了验证这个猜想,笔者先打开任务管理器,进入“进程”一栏,注意到左下角显示的是:“进程数:23”,再插入闪存,然后把目光集中到“进程数”上,可是,当系统找到硬件,一切显示正常之后,进程数并没有像笔者想像的那样变为24,而是保持23不变。这样看来,闪存插入时并没有与之相对应的进程数,那么这个现象就不好解释了。
 
   正当我无奈地点击托盘图标,想卸载闪存时,突然发现当点击"停止USB驱动器"后进程数变成了24,也就是说卸载硬件要由一个进程“负责”,当硬件卸载后,这个进程也同时结束。经过多次试验,发现这个进程的名称是rundll32.exe,哈哈,原来是这个熟悉的链接程序。
 
   到底有没有某一个进程和无法卸载硬件有关呢?笔者恰好又碰到了一次"无法停止设备"的机会,就打开任务管理器的进程栏,依次试验,每结束一个看起来相关的进程,就试验看能否拔出硬件。结束了几个无用的进程后,发现有3个相同的rundll32.exe进程同时存在,把这几个进程都结束时,笔者发现,硬件可以正常删除了。真是功夫不负有心人,看来症结还在rundll32.exe上。通过这次研究,笔者总结出:可移动硬件无法正常卸载时,进程栏中必定还有没有结束的rundll32.exe(当然,有的rundll32.exe可能和系统中正在运行的程序有关),把这几个rundll32.exe进程结束,可移动设备就肯定能正常卸载了。
 
   小提示
 
   如果经常出现这种无法停止设备的现象,可以建立一个批处理文件,里面输入“taskkill /im rundll32.exe”,保存为delusb.bat,出现故障时运行一下就可以了。这种方法适用于Windows XP用户,如果是Windows 9x/2000的用户,可以到这里下载。

本文地址:http://com.8s8s.com/it/it22086.htm