fossilme
驱动牛犊
驱动牛犊
  • 注册日期2003-01-24
  • 最后登录2011-01-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望16点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1307回复:0

filter中调用ZwCreateFile和rising2004冲突,请赐教

楼主#
更多 发布于:2004-06-21 17:43
在处理IRP_MJ_CREATE时候,我需要读一个文件来判断当前需要创建/打开的文件是否需要处理,俺使用ZwCreateFile来打开文件.
程序一直运行很好.
=======================
运行2年多后,突然发现2k下和rising2004冲突.
ZwCreateFile调用有时停顿2-6秒.
xp下没有这个问题.
rising2003没有这个问题.
=======================
代码流程如下,请赐教:
IRP_MJ_CREATE:
 |
\|/
是否重入,如果是重入,不做处理.
 |
\|/
ExInitializeWorkItem/ExQueueWorkItem,设置好处理函数WorkItemReadFile,并通过KeWaitForSingleObject等待事件
 |
\|/
WorkItemReadFile被调用,里面使用ZwCreateFile打开文件
处理完毕,KeSetEvent事件返回

======================
我确信重入处理好了,调试现象是:WorkItemReadFile里面调用ZwCreateFile有时候会停顿2-6秒.

======================
谢了.
游客

返回顶部