日期:2014-05-17  浏览次数:20707 次

从U盘运行一个程序后在不杀死该进程的条件下如何安全删除硬件?
小弟向充分了解一下windows安全删除硬件的机制(点击Tray那个绿色的箭头图标来删除硬件)。小弟自己做了一个U盘内的antorun的程序,该

程序的作用是拦截初次安装USB设备时提示重启的那个对话框(Windows提示重启的那个对话框,其实不用重启)。因为不想让用户发觉,我把

该进程做成无界面的形式。用户插上后不会发觉有东西运行。但随之而来的问题是无法安全删除硬件,因为从U盘autorun的那个进程常驻内存

,造成无法安全删除硬件(非常想知道这一点是为什么)。在XP下可以直接拔除,但在2000下以拔除就会出现不安全删除硬件的警告框。

请大虾帮忙,
1、能否详细说明windows安全删除硬件的机制。
2、为什么U盘autorun的那个进程常驻内存后会造成无法安全删除硬件。

------解决方案--------------------
因为从U盘autorun的那个进程常驻内存
--------------------------------------
安全删除硬件没有办法自动杀死用户进程,因为系统不能记录此进程的操作句柄
------解决方案--------------------
可以程序执行时将自己复制到临时目录再执行, 临时目录自己的拷贝执行时结束在U盘的进程~