swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2869回复:4

各们大侠帮忙,PIRP结构中AssociatedIrp.SystemBuffer 与userbuffer有什么区别?

楼主#
更多 发布于:2001-08-16 10:22
在与用户态交互的时候,下传buffer用的是,AssociatedIrp.SystemBuffer ,上传buffer用的是什么呢?
是AssociatedIrp.SystemBuffer 还是userbuffer,为什么在2000不能用AssociatedIrp.SystemBuffer ??只能用userbuffer!!!3x
lyx210
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-16 18:17
我的体会:
使用deviceiocontrol时,
下传buffer用的是AssociatedIrp.SystemBuffer
上传buffer用的也是AssociatedIrp.SystemBuffer
支持同时上下传,先读出后写入。
注意,如果使用上传,在Information给出上传的字节数

userbuffer好像是在writefile和readfile中使用,具体使用
方法我没有研究。

以上在98,2000下适用。
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-16 19:27
那为什么我在2000下用AssociatedIrp.SystemBuffer 不好使,而用 userbuffer却好使呢,而在NT下用AssociatedIrp.SystemBuffer好使,用userbuffer却不好使,有人遇到过此种情况吗?请指点!3x!
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-08-20 14:01
这和你用CTL_CODE生成IOCODE时的选项有关
directIO: 输入:SystemBuffer, 输出UserBuffer
BufferIo: 输入:SystemBuffer, 输出SystemBuffer
Neither:  
输入:IrpStack->Parameters.DeviceIoControl.Type3InputBuffer,
输出:UserBuffer
这在win98和win2000下有效,winnt下未试过。
zjb
zjb
驱动牛犊
驱动牛犊
  • 注册日期2001-04-13
  • 最后登录2004-05-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-21 09:00
nt和2000是一样的
游客

返回顶部