yearnyan
驱动牛犊
驱动牛犊
  • 注册日期2004-06-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1490回复:4

如何获取安全的拔除Usb盘时的事件

楼主#
更多 发布于:2004-12-09 15:28
    用户如果要安全的拔除Usb盘,必须通过右下的”安全拔下或弹出“的小工具来进行,此时如何获得这一消息呢.
   在filemon中,监控了usb盘后,如果不能截获这一消息,提前把
过滤设备deattach掉的话,usb盘就不能安全拔掉了,说有应用程序
打开了这个设备,不能拔除.
    各位兄弟可有什么好的建议.

最新喜欢:

ljmmaryljmmar...
king_y
驱动牛犊
驱动牛犊
  • 注册日期2004-10-21
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分53分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-10 15:13
在应用层捕获
WM_DEVICECHANGE消息
判断是否为DBT_DEVICEREMOVECOMPLETE
yearnyan
驱动牛犊
驱动牛犊
  • 注册日期2004-06-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-10 16:45
     在应用层好像不行呀,我现在遇到的问题是由于过滤设备指向了USB盘设备,所以不能安全拔除,即不能停止,也就是说收不到WM_DEVICECHANGE消息,除非强行拔出来.
   新的filemon已经能够监控usb存储设备,也能安全停止usb设备,
但没有原码,不知道是怎么做的.
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-10 16:58
    在应用层好像不行呀,我现在遇到的问题是由于过滤设备指向了USB盘设备,所以不能安全拔除,即不能停止,也就是说收不到WM_DEVICECHANGE消息,除非强行拔出来.
   新的filemon已经能够监控usb存储设备,也能安全停止usb设备,
但没有原码,不知道是怎么做的.

应用层肯定是可以的。
就是不知道filemon是如何做的,老兄简单介绍一下吧
在交流中学习。。。
yearnyan
驱动牛犊
驱动牛犊
  • 注册日期2004-06-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-13 14:16
 应用层肯定是可以的。
就是不知道filemon是如何做的,老兄简单介绍一下吧 [/quote]


在filemon中,在停止u盘时候,驱动会得到
detach 的消息,触发FastIoDetachDevice()历程,
将我们创建的过滤设备删除掉
            IoDetachDevice( TargetDevice );
            IoDeleteDevice( SourceDevice );

但停止还是没成功,说还是有程序在使用,不能拔出u盘.
我搞不懂还有什么地方指向了u盘的设备.

[编辑 -  12/13/04 by  yearnyan]
游客

返回顶部