Ice_Bin
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2004-01-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1462回复:5

read和write的Irp里面如何存放一段自己的buffer?

楼主#
更多 发布于:2003-07-17 15:54
read和write的irp里面,偶想把另外一段数据存进去,然后将irp发送下去,然后在完成例程里面将其读出。

如何能实现这一功能?

谢谢

最新喜欢:

rhpengrhpeng
好好学习 天天向上
raul.wang
驱动小牛
驱动小牛
  • 注册日期2002-07-30
  • 最后登录2004-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-17 16:09
在read/write的irp中本身有一个buffer,如果只是传一些数据,应该可以。但要考虑是否会破坏原有的数据。我没试过,不太清楚
同饮一壶酒
Ice_Bin
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2004-01-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-17 21:43
这是read和write的irp

本来里面就有buffer了
好好学习 天天向上
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-18 11:15
1。在相应的分发例程中取得 buffer 地址,就可以写数据。
2。设置完成例程。
3。调用IoCallDriver.
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-18 13:57
read和write的irp里面,偶想把另外一段数据存进去,然后将irp发送下去,然后在完成例程里面将其读出。

如何能实现这一功能?

谢谢

不太明白你的意思,read和write的irp中本来就有缓冲区?
你是否想在IRP_MJ_READ 、IRP_MJ_WRITE 的分发例程中给 IRP 增加一些数据?如果这样的话,你在这些分发例程另申请一块空间,用它替换原来 irp 中的缓冲区,里面的内容是原来 irp 中的缓冲区中的内容与你增加的数据,在完成例程中你就能取到原来的数据及你增加的数据。
你的认可是对我最大的鼓励!
SupermiLG
驱动牛犊
驱动牛犊
  • 注册日期2003-01-28
  • 最后登录2006-02-03
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-21 00:53
但你要注意是Buffer I/O还是Direct I/O ,这两者缓冲指针位置不一样,建议将Read/Write 中的,Buffer 读出来,申请一个Buf2,把Buffer和你要填的数据填到Buf2中,再Acquire一个IRP,按源包填好(但Buffer指针指向Buf2),then ,传下去。
游客

返回顶部