isware
驱动牛犊
驱动牛犊
  • 注册日期2006-01-24
  • 最后登录2013-04-15
  • 粉丝0
  • 关注0
  • 积分385分
  • 威望79点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
阅读:1273回复:1

过滤驱动效率问题.

楼主#
更多 发布于:2007-12-07 15:19
以前的贴子翻不出来了,新开个贴简单表述一下我最近的发现吧.
测试过tooflat老大的sfilter代码的应该都知道,开着杀毒软件的话,基本上保存文件就跟死机一样,要等30多秒.最近一段时间仔细把tooflat老大的代码翻了一遍,找到影响效率的原因了:
代码在文件访问同步控制时使用了KEVENT,并在初始化时用了同步类型,这种类型的工作方式是在event被signal后,只有一个KeWaitForSingleObject被激活,并且KeWaitForSingleObject激活后立即将该event重置(Reset),这可能导致其他等待该资源的线程长时间处于阻塞状态.
我把tooflat老大的sfilter代码的SfClearup函数中的KeWaitForSingleObject以及KeSetEvent等语句注释掉后,简单测试发先以前的死机(explorer被阻塞)现象没有了(目前还没弄明白这个EVENT信号有什么实际意义).

那么,在过滤驱动中尽可能少的使用MUTEX KEVENT等同步信号,是不是可以有效提高驱动效率呢??
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2007-12-10 17:28
有些同步是必须要做的.
商务MSN:YanDong_8212@163.com
游客

返回顶部