AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
80楼#
发布于:2004-08-05 13:57
请问各位大侠:
虚拟串口驱动程序的编写模式是属于WDM框架的吗?还是属于虚拟设备驱动一类的?这两种的开发模式是不是有很大差别呢?我看几乎所有的资料、书籍都在介绍WDM开发,而虚拟设备的开发却很少有人提。我也要做一个虚拟串口转网口的驱动程序,连本介绍“什么是虚拟串口”的最基本的入门书籍都找不到,更别说指导怎么开发了。看来只有通过多向各位请教来完成这个任务了,请大家多多赐教。
先谢了。
 

这个虚拟串口属于标准的win2000WDM驱动,你说的虚拟设备驱动是另一回事,虚拟设备驱动一般指98的驱动程序VXD,实际上就是驱动程序,在2000一般指DOS虚拟机的虚拟设备的驱动程序
AthlonxpX86(桃源村)
fhj0311
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-11-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
81楼#
发布于:2004-11-12 10:01
怎么好多代码都不能下载了呀
pipipen
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2005-12-08
  • 粉丝0
  • 关注0
  • 积分-1分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
82楼#
发布于:2004-11-16 11:26
楼主,你好!你做的工作太棒了!!给我们这些初学者很好的示例。

我对你的代码做了一些修改,目前可以实现COM21-COM20-COM1拨号(COM20和COM1之间通过一个用户态程序连起来)。对应的WAIT_ON_MASK的RXFLAG,RX80FULL event和读超时的东西也实现了一些。

我想把你的代码放到sf.net或者共创软件联盟之类的地方,这样这个东西可以一直有人维护下去,新的feature也可以继续加进去。不知道你意下如何?

[编辑 -  11/16/04 by  pipipen]

[编辑 -  12/10/04 by  pipipen]
附件名称/大小 下载次数 最后更新
2004-11-16_SimSerial.tgz (63KB)  147
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
83楼#
发布于:2004-11-16 12:45
楼主,你好!你做的工作太棒了!!给我们这些初学者很好的示例。

我对你的代码做了一些修改,目前可以实现COM21-COM20-COM1拨号(COM20和COM1之间通过一个用户态程序连起来)。对应的WAIT_ON_MASK的RXFLAG,RX80FULL event和读超时的东西也实现了一些。

我想把你的代码放到sf.net或者共创软件联盟之类的地方,这样这个东西可以一直有人维护下去,新的feature也可以继续加进去。不知道你意下如何?

[编辑 -  11/16/04 by  pipipen]


好。
我发布这个程序的初衷也只是想给大家提供一个做虚拟串口思路以及我所理解的一些关于串口的知识。在大家开发类似产品的时候能够借鉴一下就行了。免得大家各自为战,做大量重复性的工作。
你提供的修改的版本,我还没有来得及看。不过看你的介绍,应该是改进了不少。wait_on_mask和超时部分,我当初没有弄懂,所以就基本上没有处理。但是这块很重要,你添加了这部分工作,真是不错。强!有空向你学习学习。
至于说源代码,你看怎么好就怎么办吧。
 :D
lhaih
驱动小牛
驱动小牛
  • 注册日期2004-04-28
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
84楼#
发布于:2004-12-10 16:32
仅仅想表达对楼主,及各位大侠的强烈支持
highw
驱动牛犊
驱动牛犊
  • 注册日期2002-01-10
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分372分
  • 威望38点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
85楼#
发布于:2004-12-11 22:37
精华啊。
msn : armlinux2000@hotmail.com
NoWind
驱动牛犊
驱动牛犊
  • 注册日期2004-05-11
  • 最后登录2004-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
86楼#
发布于:2004-12-11 22:50
当真是高手
请问一个类似的问题
我要做一个虚拟摇杆的驱动,这个驱动通过socket接受数据(不知道能不能,本人是新手),然后送给上层需要摇杆的程序,请问怎么实现呀,谢谢
kb219
驱动牛犊
驱动牛犊
  • 注册日期2004-08-17
  • 最后登录2008-06-19
  • 粉丝0
  • 关注0
  • 积分208分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
87楼#
发布于:2004-12-14 09:26
超级终端每次 Read Irp 请求数据长度为80。

我想在某个位置,设置下次Read Irp的数据请求长度。

比如我还有56个数,我就设置某个地方=56,然后应用程序下次的Read Irp 中数据请求就是56。

可以这样做吗?我应该怎么办?请大家帮忙
sunmoon9898
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2010-07-20
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望23点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
88楼#
发布于:2004-12-23 17:17
正在看看大兔们有没有空.
 我想用实现virtual serial的自动安装. 当总线驱动第一次enum后,
 CREATE PDO,在enum 一个新位置时,总弹出pnp dialog 后.有人说,用SetupCopyOEMINF安装后,把它的copy信息去掉.可我还是不行.我的是xp
  但我在window2000下,我用acidfish 原来的inf.只要弹出一次后安装后,在新位置都没有问题.
  不知如何才能真正的去掉pnp dialog.
 有没有好的解决方法.
yehuaxie
驱动牛犊
驱动牛犊
  • 注册日期2003-07-30
  • 最后登录2005-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
89楼#
发布于:2005-01-03 18:11
好帖子,顶一下.
JasonClark
驱动牛犊
驱动牛犊
  • 注册日期2005-01-05
  • 最后登录2005-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
90楼#
发布于:2005-01-06 00:22
a good things
sunmoon9898
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2010-07-20
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望23点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
91楼#
发布于:2005-01-07 17:04
 虚拟串口在读和写的时候,它的band时如何控制的? 不然的话,我的数据的收发的速度不受控制了.还是一些流控这类的/
 各位就请发一下.
qorse
驱动牛犊
驱动牛犊
  • 注册日期2001-12-19
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
92楼#
发布于:2005-01-11 12:36
我用WDM框架做的
萧萧西风起,快马追风行
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
93楼#
发布于:2005-01-11 13:37
[quote]我用WDM框架做的
qorse
驱动牛犊
驱动牛犊
  • 注册日期2001-12-19
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
94楼#
发布于:2005-01-11 17:20
我说的问题是我自己的驱动,正在拜读你的驱动。我刚开始学做驱动,感觉用WDM的框架和类库来实现自己的驱动会简单一些,一类设备封装成一个类,增加一个设备也就是增加一个设备类的实例,很多pnp操作都是缺省的,感觉很方便。你的驱动却没采用,想听听高见。
萧萧西风起,快马追风行
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
95楼#
发布于:2005-01-11 17:38
我C++用的不熟练,加上DDK提供的代码都是C的,所以一直没有考虑过用类库实现。不过DS倒是使用类库这个思路来开发的。应该是一个很好的路子。提高开发效率,缩短开发周期。

你所提到的问题,可能是PNP的remove_device跟驱动的其他历程之间的同步问题。如果用softice或者windbg调试一下,可能更好的定位你的出错位置。
highw
驱动牛犊
驱动牛犊
  • 注册日期2002-01-10
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分372分
  • 威望38点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
96楼#
发布于:2005-01-13 22:26
呵呵,果然好使!谢谢

接下去要添加tcp部分了!

用TDI,慢慢学!


tcp添加的怎样了?
接收要怎样处理?
msn : armlinux2000@hotmail.com
scyangd
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2005-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
97楼#
发布于:2005-01-19 16:07
    楼主你好。我是驱动开发的新手,但目前有个任务需要完成。在看到你贴子后,非常佩服你在驱动开发方面的能力。所以特别想向你请教一下。希望能得到你的指教。
    我的问题就是,在一个虚拟串口的驱动程序中,能否与PC上原有的别的串口通信呢?如果能,那么读和写分别用什么函数?
    谢谢!
acidfish
驱动小牛
驱动小牛
  • 注册日期2002-05-20
  • 最后登录2009-11-11
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
98楼#
发布于:2005-01-19 16:32
这个虚拟串口恐怕不能跟系统中真实的串口互通。它倒是可以调用真实的串口,向真实串口上发送/接收数据。
scyangd
驱动牛犊
驱动牛犊
  • 注册日期2004-05-31
  • 最后登录2005-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
99楼#
发布于:2005-01-20 10:46
这个虚拟串口恐怕不能跟系统中真实的串口互通。它倒是可以调用真实的串口,向真实串口上发送/接收数据。


楼主,你的意思就是这个虚拟串口实际上就是虚拟系统的某个真实的串口?

我还有个问题,就是我有一个HID的数据线,通过它将手机与PC连在一起。现在我想虚拟一个串口,使得PC可以通过这个虚拟串口实现用手机拔号上网!你觉得这样的想法可行吗?

谢谢!
游客

返回顶部