阅读:1863回复:11
[求助]文件过滤驱动在xp以下操作系统和vista操作系统的不同动作
各位,我们公司正在做驱动程序的移植,现在遇到一个问题。
在写文件的之前,要取得文件的实际大小以对文件内容进行加密,但是出现了下面的情况,大家帮忙分析一下怎么回事。 在Vista操作系统下,我们传入一个IRP,之后进行以下操作,以取得源文件的大小。 PIO_STACK_LOCATION pstuCurrentIrpStack = IoGetCurrentIrpStackLocation(pstuIrp); 在XP以下的操作系统中, pstuCurrentIrpStack->Parameters.Write.Length = 203(正确大小515byte) 但是在Vista操作系统下, pstuCurrentIrpStack->Parameters.Write.Length = 400(错误大小1024byte) Vista下怎么操作能取得文件正确的大小,请各位指导一下,小弟在此谢过了 |
|
沙发#
发布于:2008-01-23 01:55
被FtlMgr忽悠了?
~~~ |
|
|
板凳#
发布于:2008-01-23 10:04
各位大虾帮帮忙啊!实在是被难住了!
|
|
地板#
发布于:2008-01-23 13:14
FtlMgr是什么东西?
|
|
地下室#
发布于:2008-01-23 15:32
晕死!牛人来帮帮忙啊!快被Vista搞死了!
|
|
5楼#
发布于:2008-01-23 21:34
FltMgr,如果你的文件驱动挂在这玩意下面...
|
|
|
6楼#
发布于:2008-01-24 03:02
This is not Vista's problem. You cannot get file size from WRITE IRP. You'd better query FS to get it. Don't think this piece of code works on XP either.
|
|
7楼#
发布于:2008-01-24 15:35
好像也能~反正我挂在iofcomXXX上~~
|
|
|
8楼#
发布于:2008-01-24 18:14
不明白!各位能不能说的详细一些?
|
|
9楼#
发布于:2008-01-24 18:17
引用第7楼killvxk于2008-01-24 15:35发表的 : iofcom是个什么东东? 对了,忘了说了,我们的过滤驱动是API Hook做的。 |
|
10楼#
发布于:2008-01-24 20:55
引用第6楼michaelgz于2008-01-24 03:02发表的 : [b]cannot get file size from WRITE IRP query FS to get it |
|
|
11楼#
发布于:2008-01-24 23:41
引用第9楼jjmjack于2008-01-24 18:17发表的 : IofCompleteRequest~~嘿嘿~~ 还IopParasFileXXXX 不多说了~~ |
|
|