阅读:1531回复:6
如何在文件系统过滤驱动的读写例程中获取文件名
各路高手好!小弟菜鸟一只。本来想在读写例程中通过文件对象中的FileName来获取文件名,结果把FileName打印到DBGView时却一无所获。后来在FastIo试了也一样。是不是我的方法有问题呢?请高手们指导一下。
|
|
沙发#
发布于:2008-10-29 12:05
当前堆栈中的文件对象中的FileName可以获得文件名的~
|
|
板凳#
发布于:2008-10-29 17:35
it is better to get it when create and save it to your context.
|
|
地板#
发布于:2008-10-30 09:29
谢谢大家的回复。但是小弟愚见:即使我在IRP_MJ_CREATE的时候取得文件名并保存下来,当我在IRP_MJ_READ完成的时候得到读的内容,我不能确定读到的内容是属于哪个文件的,从而没办法对该内容进行任何处理。不知高手们有何高见。
|
|
地下室#
发布于:2008-10-30 22:02
FltGetFileNameContext 好像是类似这个的routine
|
|
|
5楼#
发布于:2008-10-31 09:39
我找到问题的原因了,是我在打印的时候打印格式的问题。应该用“%wZ”来打印UNICODE字符串的内容,而不应该用“%s”。也就是说在IRP_MJ_READ的分发例程中是能取道文件名的。还是对UNICODE字符串的操作不熟啊。希望大家不要犯和我一样的错误
|
|
6楼#
发布于:2008-11-02 14:14
从当前I/O堆栈中的File Object中可以得到当前文件名
|
|