bodajingshen000
驱动牛犊
驱动牛犊
  • 注册日期2004-04-07
  • 最后登录2009-01-04
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1715回复:4

虚拟串口:事件读求助

楼主#
更多 发布于:2004-10-29 10:14
本论坛的SimSerial,没有实现事件读。
本人在此基础上,用TDI实现了网络虚拟串口,写和查询读都可以,但事件读卡住了。
有关Mask的都处理了,未决的Irp也完成,但VB应用串口程序的输入缓冲区有数据导致读事件触发,那虚拟串口怎么认识应用程序的缓冲区?(是我不认识,是未决的读Irp中的吗?)
虚拟串口没有中断,只能用定时器和系统线程。许多地方没有理解透,DDK例子也太复杂(好像是用的异步通讯方式)。
使用TDI方式比较直观,但软件结构上不完善。
南京文采使用Winsock方式,串口驱动中,实现了两个设备(虚拟串口和虚拟网桥),虚拟网桥和用户层的服务程序通讯,服务程序再和Winsock通讯。
雷立辉的文章和南京文采的类似,只不过把虚拟串口程序由一个改成了两个,代替两个虚拟设备。
他们的软件结构要合理一些。
请各位帮忙,详细指教一下事件读的问题。巨分相送。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-29 10:32
你研究以下Serial,哪个虽然复杂,但很好的 Sample,只是虚拟Serial没有了中断和端口资源等,PNP处理有些不一样
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-29 10:33
当然虚拟的也没有硬件流控等等了,如果你使用软件来Simulate,那么可能做的要复杂些
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
bodajingshen000
驱动牛犊
驱动牛犊
  • 注册日期2004-04-07
  • 最后登录2009-01-04
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-29 10:56
感谢AllenZhang,虽然没有详细指点,一样给分。
奇怪,分数修改只能一次。
各位放心,详细指点的一定给50分。
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-02 09:50
我的经验是事件读的时候,一定要像serial例子里的处理一样把IOCTL_SERIAL_SET_WAIT_MASK 和 IOCTL_SERIAL_WAIT_ON_MASK的IRPs用一个队列保存起来。注意区别historyMask 和 waitMask。
游客

返回顶部