阅读:1462回复:5
read和write的Irp里面如何存放一段自己的buffer?
read和write的irp里面,偶想把另外一段数据存进去,然后将irp发送下去,然后在完成例程里面将其读出。
如何能实现这一功能? 谢谢 |
|
最新喜欢:rhpeng
|
沙发#
发布于:2003-07-17 16:09
在read/write的irp中本身有一个buffer,如果只是传一些数据,应该可以。但要考虑是否会破坏原有的数据。我没试过,不太清楚
|
|
|
板凳#
发布于:2003-07-17 21:43
这是read和write的irp
本来里面就有buffer了 |
|
|
地板#
发布于:2003-07-18 11:15
1。在相应的分发例程中取得 buffer 地址,就可以写数据。
2。设置完成例程。 3。调用IoCallDriver. |
|
地下室#
发布于:2003-07-18 13:57
read和write的irp里面,偶想把另外一段数据存进去,然后将irp发送下去,然后在完成例程里面将其读出。 不太明白你的意思,read和write的irp中本来就有缓冲区? 你是否想在IRP_MJ_READ 、IRP_MJ_WRITE 的分发例程中给 IRP 增加一些数据?如果这样的话,你在这些分发例程另申请一块空间,用它替换原来 irp 中的缓冲区,里面的内容是原来 irp 中的缓冲区中的内容与你增加的数据,在完成例程中你就能取到原来的数据及你增加的数据。 |
|
|
5楼#
发布于:2003-07-21 00:53
但你要注意是Buffer I/O还是Direct I/O ,这两者缓冲指针位置不一样,建议将Read/Write 中的,Buffer 读出来,申请一个Buf2,把Buffer和你要填的数据填到Buf2中,再Acquire一个IRP,按源包填好(但Buffer指针指向Buf2),then ,传下去。
|
|