fazwh
驱动牛犊
驱动牛犊
  • 注册日期2005-09-11
  • 最后登录2020-11-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望303点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1825回复:10

请教高手,如果知道Write时的实际长度?

楼主#
更多 发布于:2007-06-10 22:28
NotePad写文件时,先发一个IRP_WRITE_OPERATION+IRP_DEFER_IO_COMPLETION(0xA00)的IRP,可以取得写入的真实长度;如0x10,
然后发IRP_PAGING_IO+IRP_NOCACHE+IRP_SYNCHRONOUS_PAGING_IO(0x43)IRP将文件写入到硬盘,此时写入长度为0x1000(页对齐的),写完成后才得到真实写入的长度0x10。

系统在用0x43写文件时,是如何知道写入的是0x10?是否在IRP的某个参数中有定义?

恳请大虾高手指点一二。。。
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2007-06-11 09:54
具体文件的实际长度是放在文件系统的结构里面的,这个结构是不可见的.比如说B+树的inode中.具体写磁盘都会以sector或者cluster为单位,是为了提高磁盘读写效率.
商务MSN:YanDong_8212@163.com
fazwh
驱动牛犊
驱动牛犊
  • 注册日期2005-09-11
  • 最后登录2020-11-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望303点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-06-11 16:33
请问具体是哪个结构?这个结构能读吗?
fazwh
驱动牛犊
驱动牛犊
  • 注册日期2005-09-11
  • 最后登录2020-11-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望303点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-06-12 10:18
已经解决了。在osr上找到的答案。
xhjjxm
驱动小牛
驱动小牛
  • 注册日期2005-08-03
  • 最后登录2010-07-28
  • 粉丝0
  • 关注0
  • 积分1011分
  • 威望208点
  • 贡献值0点
  • 好评度87点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-06-23 23:14
光说解决了就封笔了,却不说怎么解决的,以后这种帖建议版主即时删除之!!
Braveheart3
驱动牛犊
驱动牛犊
  • 注册日期2005-12-11
  • 最后登录2008-03-31
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望27点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-12 09:24
引用第4楼xhjjxm于2007-06-23 23:14发表的  :
光说解决了就封笔了,却不说怎么解决的,以后这种帖建议版主即时删除之!!

非常同意!
looksail
荣誉会员
荣誉会员
  • 注册日期2005-05-22
  • 最后登录2014-03-15
  • 粉丝2
  • 关注0
  • 积分1016分
  • 威望991点
  • 贡献值0点
  • 好评度239点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-07-12 10:22
引用第4楼xhjjxm于2007-06-23 23:14发表的  :
光说解决了就封笔了,却不说怎么解决的,以后这种帖建议版主即时删除之!!

强烈同意!
提问归提问,还是只能靠自己
linuxyf
驱动小牛
驱动小牛
  • 注册日期2007-04-03
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望162点
  • 贡献值0点
  • 好评度161点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2007-07-16 08:31
同意四楼的建议。
在孤独和无助中缓慢前行...
fazwh
驱动牛犊
驱动牛犊
  • 注册日期2005-09-11
  • 最后登录2020-11-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望303点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2007-07-19 00:11
FCB->FileSize取得文件实际长度或有效长度,然后计算出实际写入的长度即可。
confused_ddk
驱动牛犊
驱动牛犊
  • 注册日期2009-04-16
  • 最后登录2011-02-16
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望221点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-08-20 09:25
looksail
荣誉会员
荣誉会员
  • 注册日期2005-05-22
  • 最后登录2014-03-15
  • 粉丝2
  • 关注0
  • 积分1016分
  • 威望991点
  • 贡献值0点
  • 好评度239点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-08-20 14:41
引用第4楼xhjjxm于2007-06-23 23:14发表的 :
光说解决了就封笔了,却不说怎么解决的,以后这种帖建议版主即时删除之!!


强烈同意!
提问归提问,还是只能靠自己
游客

返回顶部