wwg266543
驱动小牛
驱动小牛
  • 注册日期2007-07-03
  • 最后登录2014-08-27
  • 粉丝3
  • 关注1
  • 积分3分
  • 威望882点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分54分
阅读:1799回复:1

文件过滤驱动中使用链表的问题

楼主#
更多 发布于:2009-08-03 10:32
在文件过滤驱动中,简单的方法就是使用链表保存过滤规则等信息,我在使用链表时发现一个问题,向各位请教一下:


1、定义链表头和链表指针为全局变量

 PLIST_ENTRY                           p;    

 LIST_ENTRY                rule_list_head;

2、在DriverEntry中使用    SfReadDriverParameters( RegistryPath )来读取注册表中的设置参数;

3、SfReadDriverParameters 初始化链表后,使用 for(p = rule_list_head.Flink; p !=&rule_list_head; p = p->Flink)
条件遍历链表正常取到全部链表元素;

4、在create等例程中,需要使用链表中的元素,使用for(p = rule_list_head.Flink; p !=&rule_list_head; p = p->Flink)
条件遍历链表时,总有一个元素为空。

请各位大牛帮忙指点一下!谢谢!


wwg266543
驱动小牛
驱动小牛
  • 注册日期2007-07-03
  • 最后登录2014-08-27
  • 粉丝3
  • 关注1
  • 积分3分
  • 威望882点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分54分
沙发#
发布于:2009-08-04 11:43
自己再顶一下!
我能想到的原因有:链表初始化在DriverEntry例程中,这个例程在system进程中执行,而create等进程在用户进程或者其他进程中执行。这样导致链表指针出现问题,导致遍历时出现错误。不知大牛们遇到过这样的问题吗?
游客

返回顶部