wangmingliang
驱动牛犊
驱动牛犊
  • 注册日期2008-05-21
  • 最后登录2009-09-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望106点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1531回复:6

如何在文件系统过滤驱动的读写例程中获取文件名

楼主#
更多 发布于:2008-10-29 11:18
各路高手好!小弟菜鸟一只。本来想在读写例程中通过文件对象中的FileName来获取文件名,结果把FileName打印到DBGView时却一无所获。后来在FastIo试了也一样。是不是我的方法有问题呢?请高手们指导一下。
jyss1644
驱动牛犊
驱动牛犊
  • 注册日期2007-08-15
  • 最后登录2011-04-11
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望180点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-10-29 12:05
当前堆栈中的文件对象中的FileName可以获得文件名的~
lovehhy
驱动小牛
驱动小牛
  • 注册日期2007-09-17
  • 最后登录2010-09-17
  • 粉丝0
  • 关注0
  • 积分1028分
  • 威望244点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-10-29 17:35
it is better to get it when create and save it to your context.
wangmingliang
驱动牛犊
驱动牛犊
  • 注册日期2008-05-21
  • 最后登录2009-09-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望106点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-10-30 09:29
谢谢大家的回复。但是小弟愚见:即使我在IRP_MJ_CREATE的时候取得文件名并保存下来,当我在IRP_MJ_READ完成的时候得到读的内容,我不能确定读到的内容是属于哪个文件的,从而没办法对该内容进行任何处理。不知高手们有何高见。
Da Vinci
驱动牛犊
驱动牛犊
  • 注册日期2008-10-22
  • 最后登录2009-06-15
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望59点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-10-30 22:02
FltGetFileNameContext 好像是类似这个的routine
我是菜鸟
wangmingliang
驱动牛犊
驱动牛犊
  • 注册日期2008-05-21
  • 最后登录2009-09-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望106点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-10-31 09:39
我找到问题的原因了,是我在打印的时候打印格式的问题。应该用“%wZ”来打印UNICODE字符串的内容,而不应该用“%s”。也就是说在IRP_MJ_READ的分发例程中是能取道文件名的。还是对UNICODE字符串的操作不熟啊。希望大家不要犯和我一样的错误
jyss1644
驱动牛犊
驱动牛犊
  • 注册日期2007-08-15
  • 最后登录2011-04-11
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望180点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-11-02 14:14
从当前I/O堆栈中的File Object中可以得到当前文件名
游客

返回顶部