Bob*_*bby 4 c++ winapi device-driver
我必须创建虚拟COM端口,通过它我可以与机器上的其他COM端口进行通信,它是设备驱动程序开发的一部分?或者只是我们可以用c ++编写.
任何人都可以提前帮助我.
huy*_*itw 12
您必须编写驱动程序,因此您需要安装WDK(以前称为DDK).但是你很幸运,因为Windows Driver Kit Samples Pack包含一个虚拟串口样本.
看起来你想要一个'translater'与一个设备交谈,为什么不简单地编写一个过滤器驱动程序并实现一些额外的IOControls?
如果您真的想从驱动程序中访问其他端口(我已经执行过一次),您应该查找以下功能:
IoGetDeviceObjectPointer/ ObDereferenceObject(用于打开/关闭端口)IoBuildDeviceIoControlRequest/ IoCallDriver(用于发送IOCTL以更改端口设置)IoBuildSynchronousFsdRequest/ IoCallDriver(用于写入/读取数据)您需要的结构/ IOCTL:
SERIAL_BAUD_RATE(代表IOCTL_SERIAL_SET_BAUD_RATE/ IOCTL_SERIAL_GET_BAUD_RATE)IOCTL_SERIAL_SET_TIMEOUTSSERIAL_HANDFLOW(代表IOCTL_SERIAL_SET_HANDFLOW/ IOCTL_SERIAL_GET_HANDFLOW)SERIAL_LINE_CONTROL(用于IOCTL_SERIAL_SET_LINE_CONTROL)IOCTL_SERIAL_PURGEIOCTL_SERIAL_SET_WAIT_MASK/IOCTL_SERIAL_GET_WAIT_MASKIOCTL_SERIAL_SET_CHARS/IOCTL_SERIAL_GET_CHARSIOCTL_SERIAL_WAIT_ON_MASK可以在此处找到控制请求的完整概述
一路顺风 :)
我假设您在Windows环境中询问此问题,因为您使用winapi进行了标记.
是的,您需要为此编写虚拟驱动程序.好消息是,DDK(现在称为WDK)可以从MS免费获得.如果您没有VS2013(WDK的8.1版本需要),您可以从MS网站免费获得Express Edition.
编辑:您可能想要查看 - http://com0com.sourceforge.net/.从描述:
Null-modem仿真器是Windows的开源内核模式虚拟串行端口驱动程序,可在GPL许可下自由使用.
Null-modem仿真器允许您创建无限数量的虚拟COM端口对,并使用任何一对将一个基于COM端口的应用程序连接到另一个.每个COM端口对提供两个COM端口.一个端口的输出是来自其他端口的输入,反之亦然.
听起来它可能正是你正在寻找的东西.
| 归档时间: |
|
| 查看次数: |
7979 次 |
| 最近记录: |