瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 【推荐】闪盘无法卸载究竟为什么
菜雕 - 2005-8-3 15:19:00
相信你一定经常遇到这种情况:在电脑的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用户
菜雕 - 2005-8-3 20:23:00
这个也顶顶。
希望给大家一点帮助
川萌天 - 2005-8-3 21:30:00
楼主真细心 谢谢
平沙落雁 - 2005-8-3 22:10:00
参考我的回复
http://forum.ikaka.com/topic.asp?board=3&artid=6895158
Focky - 2005-8-3 22:39:00
未结束的rundll32.exe一定和拔闪存有关吗?
有没有想过要是别的程序调用的rundll32.exe被结束了,导致程序出错,带来不必要的损失可能大于一个闪盘?
还是要谨慎啊!
不过欣赏楼主的钻研精神。
菜雕 - 2005-8-3 22:45:00
引用:
【Focky的贴子】未结束的rundll32.exe一定和拔闪存有关吗?
有没有想过要是别的程序调用的rundll32.exe被结束了,导致程序出错,带来不必要的损失可能大于一个闪盘?
还是要谨慎啊!
不过欣赏楼主的钻研精神。
...........................

嗯,有道理!
接受!
1
查看完整版本: 【推荐】闪盘无法卸载究竟为什么