chensong_2000
驱动牛犊
驱动牛犊
  • 注册日期2003-07-12
  • 最后登录2003-10-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1431回复:3

虚拟串口开发求助

楼主#
更多 发布于:2003-07-15 14:08
这个项目是要做一个虚拟串口的驱动程序,和一个控制这个驱动程序(简称A)的应用程序(简称B).
数据流程大概是这样,在B中,可以随时创建和删除虚拟串口,最多可以创建256个,当虚拟串口创建好之后,其他的应用程序就可以打开该串口了(如 HANDLE hCom = CreateFile(\"com5\",....)),
当打开串口的应用程序使用WriteFile(hCom,...)时,数据先进入驱动程序,然后程序B取走数据,用
Socket送到远端指定IP和端口的程序,当程序B从Socket接受到数据后,将数据写到驱动的缓冲区,然后通知其他打开该串口的应用程序用ReadFile(hCom,...),取走数据.
整个项目就是要模拟串口的操作,虽然底层是用Socket进行通讯,但其他用户在编程时就象在使用串口,除了上述几个函数外,还可以实现其他串口操作,如等待串口消息EV_RXCHAR.
                                            通过socket
某应用-----------驱动(A)---------应用程序(B)------------------远端进程

现在我对驱动还不是很了解,有下面的几个问题:
1,在其他的应用程序中如何通过不同的设备名称调用相同的驱动,如“COM4”,“COM5”。
2,是使用DMA的工作方式还是自己直接管理缓冲区。不知道哪种方式是合理的。
3,如何通知想从缓冲区读取数据的进程数据已到。现在考虑使用中断。(是不是使用DMA的通道,适配器,还有缓冲区,一旦缓冲区满,系统自动产生中断提示用户进程使用readfile)
4,虚拟串口NT方式的还是WDM方式的。
5,看了几个例子,都只用了一个DMABuffer,如何区分哪个是写入的数据,哪个是写出的数据。如何实现全双工通信.
6如果多个进程使用同一个串口,如何同步他们,使得数据不被破坏.
helloha
ljg8085
驱动牛犊
驱动牛犊
  • 注册日期2003-07-22
  • 最后登录2003-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-23 10:55
给予强烈关注!
期待高手现身说法!
我也是卡在这个问题上。以前没有作过驱动开发,老板把任务砸下
来,只有硬着头皮上!
chensong_2000
驱动牛犊
驱动牛犊
  • 注册日期2003-07-12
  • 最后登录2003-10-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-24 09:08
谢谢,谢谢,你现在的项目进展到什么状况了?用的什么开发工具,我用的是DriverWorks
helloha
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-25 11:38
最近我也在学DirverStudio,发现这东东比DDK简单很多,但是还不够熟悉,所以效率虽然高,但还不如DDK使用的方便,有机会可以多交流交流
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部