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