my530
驱动牛犊
驱动牛犊
  • 注册日期2006-06-30
  • 最后登录2009-06-25
  • 粉丝2
  • 关注0
  • 积分7分
  • 威望79点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2177回复:5

关于StreamContext,设置值后,拿不到数据。

楼主#
更多 发布于:2008-11-02 13:56
PostCreate中,我创建StreamContext,(FltAllocateContext、FltSetStreamContext)

在PreRead或PreWrite,FltGetStreamContext拿不到数据,为什么呢?

我分别在PostCreate和PreRead入口打印FltObjects->Instance和FltObjects->FileObject,值各不相同。为什么呢?
my530
驱动牛犊
驱动牛犊
  • 注册日期2006-06-30
  • 最后登录2009-06-25
  • 粉丝2
  • 关注0
  • 积分7分
  • 威望79点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-11-02 14:18
还发现,如果关注的文件长度为0,文件类型为txt和bat。
能正常拿到数据,即PostCreate和PreRead入口打印FltObjects->Instance和FltObjects->FileObject值一样。

如果文件有内容,是不是被缓存了?

补充一句:使用下面代码来关注文件类别。

    status = FltGetFileNameInformation( Data,
                                        FLT_FILE_NAME_NORMALIZED |
                                        FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP,
                                        &nameInfo );
lovehhy
驱动小牛
驱动小牛
  • 注册日期2007-09-17
  • 最后登录2010-09-17
  • 粉丝0
  • 关注0
  • 积分1028分
  • 威望244点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-11-03 01:00
FltSetStreamContext是怎么调用的?参数是什么?是Replace还是Keep?
my530
驱动牛犊
驱动牛犊
  • 注册日期2006-06-30
  • 最后登录2009-06-25
  • 粉丝2
  • 关注0
  • 积分7分
  • 威望79点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-11-03 11:08
\FltSetStreamContext( FltObjects->Instance,FltObjects->FileObject,FLT_SET_CONTEXT_REPLACE_IF_EXISTS,fileContextPtr,NULL);
我试过了,用FLT_SET_CONTEXT_KEEP_IF_EXISTS也不行。

另外获取文件名:
    status = FltGetFileNameInformation( Data,
                                        FLT_FILE_NAME_NORMALIZED |
                                        FLT_FILE_NAME_QUERY_DEFAULT,
                                        &nameInfo );
改过FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP,也不行
jl2004
驱动小牛
驱动小牛
  • 注册日期2007-04-10
  • 最后登录2011-02-22
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望276点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-11-05 15:42
用Data->Iopb->targetInstance
   Data->Iopb->targetFileobjet
试一下
向前,向前,向前....
xbpeng
驱动牛犊
驱动牛犊
  • 注册日期2008-12-12
  • 最后登录2009-02-17
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-01-19 18:31
StreamContext
 是跟文件对象的,你调试下,你设置上下文的文件对象,和你想取得上下文地方的文件对象是否是同一个
游客

返回顶部