nana2046
驱动牛犊
驱动牛犊
  • 注册日期2007-02-28
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分235分
  • 威望64点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:1651回复:3

[求助]从Irp->Userbuffer里取数据的问题

楼主#
更多 发布于:2007-06-05 16:35
近期在做关于文件过滤的工作,
我就是想在irp_mn_read下预读一些要打开的文件,比如txt文件,然后把内容和一个关键字符做比较,如果符合,就禁止打开操作 .
根据以往看过的帖子,可以在softice下看到userbuffer里的txt文件内容了,可是不知道怎么将其取出来并进行比较.这个问题已经卡了我很久了,上面一直在催,着急啊.
希望各位大牛能给予一些指点,谢谢了!!

最新喜欢:

rhpengrhpeng
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2007-06-07 17:30
操作这个buffer需要特别注意,因为这个buffer是用户的,换句话说就是分页的.如果当前发生了进程切换,这个buffer里面的内容就不再可用.
商务MSN:YanDong_8212@163.com
nana2046
驱动牛犊
驱动牛犊
  • 注册日期2007-02-28
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分235分
  • 威望64点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-06-05 20:00
我也是这么做的,可是好象不成功,可能是细节操作上有问题.能详细指教一下吗?或者留个QQ?我的QQ:478111488
liyunch
驱动小牛
驱动小牛
  • 注册日期2001-06-28
  • 最后登录2014-09-05
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望134点
  • 贡献值0点
  • 好评度94点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-06-05 19:40
PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp);

PCHAR buf = Irp->UserBuffer;
ULONG length = irpSp->Parameters.Read.Length;

然后可以拿buf直接比较.
游客

返回顶部