在文件系统过滤驱动中,如何确定读写文件的长度?在sfilter中添加SfRead和SfWrite例程,打印PIO_STACK_LOCATION IrpSp;Length = IrpSp->Parameters.Write.Length;信息时,发现却是4096。不知道I...
全文
回复(12) 2007-02-27 08:52 来自版块 - 文件系统(过滤)驱动程序开发
表情
linuxyf我也遇到了同样的问题,也没有解决(2007-05-09 19:43)
dargons我在tooflat所给的代码上进行处理的. 由于使用了分组算法导致文件长度增加,在读时无法正确解密. 比如我要输入40字节的明文,经驱动加密处理后会产生48字节密文, 但在实际写入文件时它只写入了密文的前面40字节. 现在的问题是:如何在实际写入时,写入48字节的密文; 在读时...(2007-03-08 17:27)
lsxredrain我是用压缩法,不需要改变文件长度,写时把需要解压的长度和位置记下来,读时检查文件头就行了.其实对于磁盘上的文件,只有写时才有文件长度改变的 在osr上面搜索一下相关的资料看看,这几天在准备考博,没有太多时间去钻研这了,有好消息通报通报(2007-03-06 13:36)
reddargon是的,我在调试时也是同样的结果; 只是在进行写操作时可以看到。 如果处理后的长度比原来的大,就需要重新考虑了。 我记得在以前的帖子中,有人给出重新分配一块内存,拷贝原来的Irp进行处理,但不知道最后的结果怎样。(2007-03-06 13:20)
lsxredrainhttp://www.osronline.com 上面,测试发现 在write中Irp->FileObject->CurrentByteOffset 可以代表真实的文件偏移,但是read中是不对的(2007-03-06 13:13)
reddargon好象还是不行呀,l只是在读写完成例程中可以看到读写后的信息, 但如果在读写例程中改变了文件长度,处理后得到还是原来文件长度的内容; sxredrain,能否告知这些相关的资料可以在那个网站上找到? 多谢。(2007-03-06 12:52)
reddargon多谢lsxredrain, 我先看一下.(2007-03-05 08:03)
lsxredrainWe are writing a filter driver and are having problems ( like many before by the looks of it ;) ) We are trying to read from file in a compl...(2007-03-04 04:40)
lsxredrainEXCEPT when HighPart is -1 and LowPart is one of the two constants FILE_WRITE_TO_END_OF_FILE or FILE_USE_FILE_POINTER_POSITION. 关键是这句话,如果Hig...(2007-03-04 04:12)
lsxredrainA filter just needs to pay attention to the ByteOffset field in the stack location (pIrpSp->Parameters.Read.ByteOffset or pIrpSp->Para...(2007-03-04 04:07)

返回顶部