beaveror
驱动中牛
驱动中牛
  • 注册日期2002-06-13
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1325回复:6

还有几个问题!

楼主#
更多 发布于:2002-08-23 17:13
现在有点钱了,看我放多少分,都是专家分呐。
1、我的驱动是将用户的数据写入缓存,然后通过消息触发应用层将它读走通过IOCTL,应用层通过socket发到网络中。然后从网络中读到数据写入驱动读缓存中通过IOCTL,用户什么时候读我就不管了。
问题是:
这样一个正常的顺序,在高速读写时会出现混乱,驱动会一次写很多数据到缓冲中,然后又一起读出,很可能是写了6个包进出,一下又出来6个包,事件的触发也不是次次响应。有办法让驱动一步步的按顺序做吗?
2、在2k下很好用的驱动到98下安装后,打不开设备。有什么办法吗?

多谢各位帮忙的高手了。
只要能解决问题,就一定给分。 希望高手赐教!
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-23 17:17
要一次一次发送,将IRP排对就可以吧.
2000的驱动在98下不好用,很正常.
Where there is a will, there is a road.
beaveror
驱动中牛
驱动中牛
  • 注册日期2002-06-13
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-23 17:24
要一次一次发送,将IRP排对就可以吧.
2000的驱动在98下不好用,很正常.


怎么排队?我是将数据写入了缓冲,通过队列的方法读出、写入。
我的程序是用来模拟串口的。
只要能解决问题,就一定给分。 希望高手赐教!
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-23 17:29
[quote]要一次一次发送,将IRP排对就可以吧.
2000的驱动在98下不好用,很正常.


怎么排队?我是将数据写入了缓冲,通过队列的方法读出、写入。
我的程序是用来模拟串口的。 [/quote]

关键在与读写数据时如何同步,否则数据会混乱的。
另外,上层反应是否够快,否则丢数据
xjcxc
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2006-08-28
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-23 17:40
在上层创建高级别的读写线程(31);
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-08 12:46
从你的两个贴子来看,你可能想虚拟一个串口,目的是将用户写向串口的数据通过TCP/IP发向网络,由于在驱动程序中不能使用SOCKET所以想了一个驱动和应用相结合的办法来实现。
不知道我说的对不对。
如果对的话,你的这个办法也太差了。
其实在内核层也完全可以使用TCP/IP的,使用TD Client,甚至可以做得象socket 一样。我已经做了一份相对简单的,有兴趣可以留一个email。
虚拟串口在win98 和 NT/2K是不一样的。
少了e,就少了全部
beaveror
驱动中牛
驱动中牛
  • 注册日期2002-06-13
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-08 13:15
从你的两个贴子来看,你可能想虚拟一个串口,目的是将用户写向串口的数据通过TCP/IP发向网络,由于在驱动程序中不能使用SOCKET所以想了一个驱动和应用相结合的办法来实现。
不知道我说的对不对。
如果对的话,你的这个办法也太差了。
其实在内核层也完全可以使用TCP/IP的,使用TD Client,甚至可以做得象socket 一样。我已经做了一份相对简单的,有兴趣可以留一个email。
虚拟串口在win98 和 NT/2K是不一样的。


要是能介绍,介绍就太好了。
beaveror@sina.com. :D :D :D
只要能解决问题,就一定给分。 希望高手赐教!
游客

返回顶部