阅读:1930回复:9
请教:Attach到U盘后如何安全卸载U盘?
写了一个文件过滤驱动,当U盘插入后可以检测到并成功Attach上一个过滤设备,工作也正常,问题是在安全删除USB设备的时候报“无法停止”,卸载掉驱动就好了。想来应该是那个attach上的设备的影响。请教诸位大牛,如何能安全地卸载U盘啊?或者说在桌面点击安全删除的时候,系统会发送哪些消息呢?哪些能被我们收到并能够因此顺利detach?
|
|
沙发#
发布于:2007-03-22 12:55
貌似你的过滤驱动有问题,检查stop/remove部分
|
|
|
板凳#
发布于:2007-03-22 14:36
引用第1楼rayyang2000于2007-03-22 12:55发表的“”: 请教一下,我逐句跟踪后发现,调用了IoAttachDeviceToDeviceStack()或IoAttachDeviceToDeviceStackSafe()后会有这个现象。但不调又不行。我想在安全卸载硬件的时候把设备从栈里Detach掉,应该没有问题。但安全卸载硬件的时候过滤驱动好像没有收到任何IRP。请问驱动如何获知一个U盘被卸载呢?我的驱动是参考tooflat的sfilter写的,好像它也没有相关的stop/remove的部分。 谢谢指点! |
|
地板#
发布于:2007-10-10 16:42
要在fastio里处理一下FastIoDetachDevice
if(SourceDevice == YourHookDevice) { IoDetachDevice(TargetDevice); IoDeleteDevice(SourceDevice); YourHookDevice = NULL; return; } |
|
地下室#
发布于:2007-10-10 17:42
注册IoRegisterFsRegistrationChange
|
|
5楼#
发布于:2007-10-11 01:23
stevphen人其实不错,就是太爱激动了
|
|
|
6楼#
发布于:2007-10-11 11:13
引用第5楼fooegg于2007-10-11 01:23发表的 : 同意,就是情商和性格的问题,是个好同志 |
|
7楼#
发布于:2007-10-11 11:16
引用第6楼lovehhy于2007-10-11 11:13发表的 : 。。。无语,昨天我还见你和他在驱网吵架。。。 另外,你说他是好同志,我对这个说法没意见。。哈,一般用来形容断背的。。 |
|
|
8楼#
发布于:2007-10-11 11:26
引用第7楼ProPlayboy于2007-10-11 11:16发表的 : 在我们那里,打一架然后再互相拍拍灰起来喝酒的都有。 |
|
9楼#
发布于:2007-10-11 14:32
我这儿经常有喝完酒打架,完了还是好朋友,然后再喝再打,呵呵
|
|
|