hanmuqiu
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2005-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1572回复:5

D12驱动程序清除缓冲区问题

楼主#
更多 发布于:2004-11-25 18:03
D12应用中, 遇到如下情况:

  D12向驱动发出一批数据, 上层应用用ReadFile从驱动中读取到这批数据的一部分,还有剩余数据. 此时上层应

用发送新的命令到D12,并希望用ReadFile读取该命令的全新返回数据, 但由于上次还有剩余数据留在驱动缓冲区

里,所以ReadFile 读到的是那些剩余数据.

请教各位老大,在执行ReadFile之前, 有没有什么办法先将驱动程序的数据缓冲区清除啊?
aivenLiu
驱动牛犊
驱动牛犊
  • 注册日期2003-06-02
  • 最后登录2011-01-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-01 23:58
顶,
俺也碰到这个问题,俺的驱动是用driverstudio开发的,俺用PiPE1.Reset()这条指令好像也没有用。
请各位老大们提供解决方法,
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-03 09:58
这个应该由固件程序去清除的吧,而不是由驱动程序去清除吧
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-08-03 09:59
我不是用D12,驱动程序应该来说不管这个吧,这样的情形应该由固件程序去处.
aivenLiu
驱动牛犊
驱动牛犊
  • 注册日期2003-06-02
  • 最后登录2011-01-17
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-01 00:16
我的情况是这样,俺第一次要读512bytes数据,但俺的固件可能发送了多于512bytes的数据,如576bytes,这样俺第二次要读数据是必须把以前多于的64bytes先要清除掉,不然俺第二次读的数据就是上次多于的数据,那么,如何清除第一次多于的数据呢,这时固件都已发送给driver了,所以我想应该在driver这端清除。
qianshan_wn
驱动牛犊
驱动牛犊
  • 注册日期2006-09-25
  • 最后登录2008-06-12
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望15点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-09-18 09:46
这个在你的固件程序发送数据函数中在发完之后就应该清除的
游客

返回顶部