Luckysune7
驱动牛犊
驱动牛犊
  • 注册日期2003-04-08
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1355回复:5

端口读写大量数据问题。DeviceIOControl能行么?

楼主#
更多 发布于:2003-05-25 13:58
要从端口读图像数据,能有256k左右。
想在sys中用
READ_PORT_BUFFER_ULONG( (PULONG)wPortEPP,
                                (PULONG)pBuffer,
                                ulongSize );
那么缓冲区怎么实现好呢?
在app中开辟缓冲,用deviceiocontrol传递给驱动程序,这样能行不?共享内存是怎么回事?用这个实现么?
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-26 15:13
可以用READ_PORT_BUFFER_ULONG

在app中开辟缓冲区,然后用直接方式传给驱动(其实只是将地址告诉了驱动),驱动将数据填到这个缓冲区中;不能用缓冲方式,超过了页面限制
早起早睡 精神百倍
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-05-26 16:46
不能用缓冲方式,超过了页面限制

我记得是说,大的buffer,就用MDL,那么什么是“大”?一般来说以一个page为准,可没有说不能啊。
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-26 17:23
[quote] 不能用缓冲方式,超过了页面限制

我记得是说,大的buffer,就用MDL,那么什么是“大”?一般来说以一个page为准,可没有说不能啊。 [/quote]

我指的是他这种情况(256k)下,不能用缓冲区方式啊--256k已经远远超出一个page了 :D :D
早起早睡 精神百倍
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-26 17:25
2000大哥的意思是一次传少于一个page?
早起早睡 精神百倍
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-05-26 18:01
我的意思是说,buffered_io也可以啊,不是“不能用buffered”。
算了,没有什么意义 :D
游客

返回顶部