fazwh
驱动牛犊
驱动牛犊
  • 注册日期2005-09-11
  • 最后登录2020-11-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望303点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1830回复: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的某个参数中有定义?

恳请大虾高手指点一二。。。
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上找到的答案。
fazwh
驱动牛犊
驱动牛犊
  • 注册日期2005-09-11
  • 最后登录2020-11-18
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望303点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-07-19 00:11
FCB->FileSize取得文件实际长度或有效长度,然后计算出实际写入的长度即可。
游客

返回顶部