阅读:1791回复:11
[请教大牛]写文件尾成功,但无数据写入,但文件长度增加???
我在cleanup中(完成前),自己发送IRP(IoBuildsyn.............),设置标志为NOCACHE,写文件尾。返回Status和Information都为0,EndOfFile确实增加了写入长度,但文件尾数据全为空0。大牛们能帮小弟指点一下吗?
|
|
沙发#
发布于:2007-07-21 16:38
经过进一步调试发现:写的起始位置(ByteOffset.QuadPart)如果为512的整数倍,写操作就会成功,待大牛们进一步答疑
|
|
板凳#
发布于:2007-07-21 23:21
IRP_NOCACHE是512对齐。
txt在文件小于512之前好象没问题,可以写入。 我也不懂里面的原因,共同研究。 |
|
地板#
发布于:2007-07-23 09:06
ding
|
|
|
地下室#
发布于:2007-07-23 17:10
能看看你的getinfomation与setinfomation代码吗?
|
|
5楼#
发布于:2007-07-27 17:26
512是最小单位写入长度,不足的按照512计算
|
|
6楼#
发布于:2007-07-27 18:33
磁盘簇的大小是512,非缓存写也是按这个大小写进去的。
|
|
|
7楼#
发布于:2007-07-27 18:40
多谢各位大侠,还有点不明白,比如本来文件长度只有15,现在我要给它加一个长度512的文件尾,应该从什么位置开始写入?512?那512-15的空位置怎么处理呢?
|
|
8楼#
发布于:2007-07-27 18:49
我想写入的时候是这样的,对于文件内容不足512的,比如本来文件长度只有15,那你应该把文件尾的前497附上,凑足512写入,然后把剩下的15文件尾写入。
|
|
|
9楼#
发布于:2007-07-27 20:00
哦,原来如此,谢啦,试试看:)
|
|
10楼#
发布于:2007-07-30 08:31
楼主试的如何,可以吗?
|
|
|
11楼#
发布于:2008-11-18 13:06
楼主怎么没结贴?
|
|
|