可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6844回复:30

虚拟串口转网口驱动

楼主#
更多 发布于:2008-12-08 17:15
驱动,学习
老板让做虚拟串口转网口的驱动,很难啊,哪位大侠能帮帮小妹呀,有重谢
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2011-07-21 17:12
三年后又来到了这里,那时的自己还真是有意思呀
Owen.Guo
驱动中牛
驱动中牛
  • 注册日期2001-03-30
  • 最后登录2012-03-29
  • 粉丝0
  • 关注1
  • 积分402分
  • 威望260点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-05-30 12:15
   
Owen.Guo 祝你成功!
generalos
驱动牛犊
驱动牛犊
  • 注册日期2008-10-23
  • 最后登录2011-04-20
  • 粉丝0
  • 关注0
  • 积分63分
  • 威望477点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-01-12 11:26
用TDI CLIENT
驱网无线,快乐无限
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-01-12 09:23
恭喜你,那你的工作大部分都已经做完了,这两天我和我们领导沟通了,我的驱动网络部分也必须在驱动层做,这两天在看网络这方面的资料,看不明白,网络部分的驱动是什么部骤啊,还有就是NDIS和TDI是什么关系呢,看的头都大了
--------------------------------------
可惜我没有做过TDI,只做过NDIS,ndis就是在报文上送或下发的过程中,给你提供一个识别,拦截和修改报文的机会,TDI我就不懂了,不过本论坛有个什么什么2005的串口转网络驱动,我略微看了一下,是使用TDI的,你可以看看
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-01-09 08:59
回abednego1979:
恭喜你,那你的工作大部分都已经做完了,这两天我和我们领导沟通了,我的驱动网络部分也必须在驱动层做,这两天在看网络这方面的资料,看不明白,网络部分的驱动是什么部骤啊,还有就是NDIS和TDI是什么关系呢,看的头都大了
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-01-08 09:30
不客气

前天我的虚拟串口驱动写好了,收发的数据送到应用程序里面了,在那里做了环回,在串口工具上可以自发自收了。
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-01-07 11:23
abednego1979,非常感谢你的帮助
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-01-04 09:28
回abednego1979:
   又想起一问题,我的串口在什么时候读数据呢,怎么知道网络中有数据过来呢,谢谢了,肯赏脸的话留个联系方式。
————————————————————————————————
看样子你没有使用过串口吧?有两种方式读取串口数据,一种是直接读取,然后查看读取到的数据量,判断是否读取到数据,另一种是设置事件掩码,当有数据到来的时候,底层通知上层,上层再取数据,保证一定读取到数据。
windows自带的超级终端属于前者,一般的串口调试工具属于后者
建议你用用windows的串口控件MSCOMM,实际用一下串口,就知道怎么回事了
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-01-04 09:10
回abednego1979:
   又想起一问题,我的串口在什么时候读数据呢,怎么知道网络中有数据过来呢,谢谢了,肯赏脸的话留个联系方式。
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-01-04 09:07
谢谢你,我先试着写一写,肯定还会碰到很多问题,还会请教你,希望你不要烦啊,有机会请你出来吃饭。
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-12-31 12:55
回abednego1979:
调用TDI是不错的方法,不过我不准备用,我想在应用程序上起一个线程定时的将虚拟串口的发送数据读取出来,然后转给网口,同时读取网络数据,送入驱动的串口接收缓冲,我觉得这样的好处是降低了驱动的复杂度,数据一旦到了应用程序中,怎么都好办了.,而且可以增加灵活性.我看见网上有公司是这样做的,他们给出软件框架图,就是这个思路.
------------------------------------------------------------------------------------------------------------------------------------
网络部分在应用层控制容易很多,是个不错的方法,我在串口方面还有些问题没有解决,如果我要在一个驱动中虚拟多个串口该怎么做呢,要求四个,我在驱动中怎么控制这四个不同的串口呢,应用层往驱动中发数据时,我要怎么区分是发给哪个串口的呢?

---------------------------------------------------------------------------------------------
我的理解,驱动是一套程序,而不同的串口是不同的设备.一个驱动对应多个设备,
实现多虚拟串口我的方法是创建设备的时候,检查尚未创建的串口,并创建,然后修改注册表,使系统可以枚举到这个串口.不同串口访问的时候,程序使用的是PDEVICE_OBJECT指针,关键的数据都在这个指针下面的扩展PDEVICE_EXTENSION中,包括收发缓存和该端口控制信息,每个串口在创建的时候都有自己的PDEVICE_OBJECT,当然也有自己的PDEVICE_EXTENSION,所以也有自己的收发缓存和端口控制信息,其实最后你只要让系统能使用你的虚拟串口了,剩下的使用那一个串口的问题就取决于你在应用层使用的是哪个COM口.
不过我声明先,这是我的理解,不一定准确.
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2008-12-30 13:35
回abednego1979:
调用TDI是不错的方法,不过我不准备用,我想在应用程序上起一个线程定时的将虚拟串口的发送数据读取出来,然后转给网口,同时读取网络数据,送入驱动的串口接收缓冲,我觉得这样的好处是降低了驱动的复杂度,数据一旦到了应用程序中,怎么都好办了.,而且可以增加灵活性.我看见网上有公司是这样做的,他们给出软件框架图,就是这个思路.
------------------------------------------------------------------------------------------------------------------------------------网络部分在应用层控制容易很多,是个不错的方法,我在串口方面还有些问题没有解决,如果我要在一个驱动中虚拟多个串口该怎么做呢,要求四个,我在驱动中怎么控制这四个不同的串口呢,应用层往驱动中发数据时,我要怎么区分是发给哪个串口的呢?
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2008-12-30 12:35
回abednego1979:
我是被老板催着做的,郁闷坏了,把这么难的东西交给我做,我之前只做应用软件也没做过底层驱动,有故意为难人的意思啊,时间定了两个月,时间很短,网络那一块一点也不懂,网上一些资料说可以调TDIClient接口,具体怎么调还是不太清楚,希望有人能指点一下,串口懂一点点,如果你愿意的话可以留一下QQ或其它联系方式吗,我都快绝望了,我QQ是19346652,真的非常感谢,任务完成一定请你吃饭好好谢谢你
-----------------------------------------------------------------------------


调用TDI是不错的方法,不过我不准备用,我想在应用程序上起一个线程定时的将虚拟串口的发送数据读取出来,然后转给网口,同时读取网络数据,送入驱动的串口接收缓冲,我觉得这样的好处是降低了驱动的复杂度,数据一旦到了应用程序中,怎么都好办了.,而且可以增加灵活性.我看见网上有公司是这样做的,他们给出软件框架图,就是这个思路.

我的虚拟串口自发自收搞定了(都是抄来的),现在开发向应用程序开放访问能力的部分.几天没有进展了,有些问题不懂,头疼.
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2008-12-30 10:48
回dfbb7788:
不是帮我做是指点一下
dfbb7788
驱动牛犊
驱动牛犊
  • 注册日期2007-07-07
  • 最后登录2010-05-06
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望106点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2008-12-30 09:08
要一个公司的还能帮你做 嘿
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2008-12-29 15:40
 谢谢你
abednego1979
驱动牛犊
驱动牛犊
  • 注册日期2004-02-17
  • 最后登录2009-03-27
  • 粉丝1
  • 关注1
  • 积分20分
  • 威望180点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2008-12-29 09:49
abednego1979:你一定很厉害吧,能帮我一把吗?万分感谢

遗憾,我也是一个初学者,不过不是老板催我,我自己要做的.我想先实现虚拟串口,然后起一个线程将串口数据转发到网口就行了,前一段时间做NDIS驱动,对网络方面的比虚拟串口的懂得多一些.
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2008-12-26 19:07
abednego1979:你一定很厉害吧,能帮我一把吗?万分感谢
可爱的小红
驱动牛犊
驱动牛犊
  • 注册日期2008-10-29
  • 最后登录2013-07-16
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2008-12-26 16:56
呵呵,我正要写一个这样的东西,马上就要开工了

真的吗?能一起交流一下吗?我很困惑啊
上一页
游客

返回顶部