阅读:2869回复:4
各们大侠帮忙,PIRP结构中AssociatedIrp.SystemBuffer 与userbuffer有什么区别?
在与用户态交互的时候,下传buffer用的是,AssociatedIrp.SystemBuffer ,上传buffer用的是什么呢?
是AssociatedIrp.SystemBuffer 还是userbuffer,为什么在2000不能用AssociatedIrp.SystemBuffer ??只能用userbuffer!!!3x |
|
沙发#
发布于:2001-08-16 18:17
我的体会:
使用deviceiocontrol时, 下传buffer用的是AssociatedIrp.SystemBuffer 上传buffer用的也是AssociatedIrp.SystemBuffer 支持同时上下传,先读出后写入。 注意,如果使用上传,在Information给出上传的字节数 userbuffer好像是在writefile和readfile中使用,具体使用 方法我没有研究。 以上在98,2000下适用。 |
|
板凳#
发布于:2001-08-16 19:27
那为什么我在2000下用AssociatedIrp.SystemBuffer 不好使,而用 userbuffer却好使呢,而在NT下用AssociatedIrp.SystemBuffer好使,用userbuffer却不好使,有人遇到过此种情况吗?请指点!3x!
|
|
地板#
发布于:2001-08-20 14:01
这和你用CTL_CODE生成IOCODE时的选项有关
directIO: 输入:SystemBuffer, 输出UserBuffer BufferIo: 输入:SystemBuffer, 输出SystemBuffer Neither: 输入:IrpStack->Parameters.DeviceIoControl.Type3InputBuffer, 输出:UserBuffer 这在win98和win2000下有效,winnt下未试过。 |
|
地下室#
发布于:2001-08-21 09:00
nt和2000是一样的
|
|