yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:1213回复:2

如何把MDL地址分成多次操作?

楼主#
更多 发布于:2002-10-18 14:01
各位大侠:
    我正在开发一个USB应用。
    当应用程序需要向USB写数据的时候,如果数据量比较大,超过了USB缓冲区的长度,在Driver中我应该把传输分成多次来操作。
    若应用程序的请求是用的的是METHOD_BUFFERED方式,我可以在driver里获得获得系统缓冲区的指针,然后很容易地移动指针来完成这一点。
    但是如果应用程序的请求是METHOD_OUT_DIRECT或者,这个时候在driver里获得的是MDL,这个时候我该怎么办?
    

    不胜感激!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-18 15:23
MmGetMdlByteCount,MmGetMdlVirtualAddress,IoAllocateMdl,IoBuildPartialMdl。
具体处理方法参看DDK中Bulkusb中BulkUsb_StagedReadWrite函数,其中有你想要的处理方法。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
yww
yww
驱动牛犊
驱动牛犊
  • 注册日期2001-05-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分322分
  • 威望34点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-18 16:04
谢谢,我看看去
游客

返回顶部