c# - 初始化 USB 调制解调器的 COM 端口

标签 c# serial-port usb modem

我正在使用 GsmComm 连接到 USB 调制解调器。当我最初将调制解调器连接到计算机时,我正在使用的调制解调器的 com 端口没有出现在设备管理器中。计算机将其显示为可移动驱动器。但是,当我运行调制解调器随附的应用程序时,com 端口会显示在设备管理器中。

所以每次我想将设备与我的应用程序一起使用时,我必须先将它连接到 pc,运行他们的软件来初始化 com 端口,然后再运行我的应用程序。

但是有什么方法可以使用 C# 从我的应用程序初始化 com 端口吗?

我读过一些关于创建虚拟 com 端口以连接到 USB 设备的内容,但我不知道该怎么做。任何帮助或指示将不胜感激。

2016 年 2 月 14 日更新

我按照antiduh的回答,发现设备在第一次连接时被识别为cdrom。

enter image description here

运行他们的应用程序后,链接变为 harddiskvolume -

enter image description here

并创建了三个新的 com 链接。

enter image description here

最佳答案

虚拟串行端口由设备附带的设备驱动程序模拟。如果在您运行他们的软件之前他们没有出现在设备管理器中,那么它要么动态安装设备驱动程序,要么向驱动程序发送 secret 握手以告诉它开始模拟端口。

前者需要 UAC 提升和 .sys 文件,如果您在运行他们的软件时没有看到提示,也没有看到可能执行此操作的已安装服务或 .sys 文件,那么您可以排除这种可能性.后者通常是通过 DeviceIoControl() 调用完成的,您可以使用过滤器驱动程序进行监视。喜欢IoSpy ,一个包含在 WDK 中的实用程序。在该实用程序上使用 Dumpbin.exe/imports 可以提供有用的实现细节,SysInternals 的进程监视器也是如此。

很难保证成功,最好向制造商询问详细信息。然而,他们并不经常回电话,也没有在手册中包含此类详细信息。他们当然更喜欢任何人使用他们的铲具。请记住,您在戳戳时看到了 pig 的 curl 尾部,最好通过退回设备并从其他制造商购买另一台设备来减少损失。

关于c# - 初始化 USB 调制解调器的 COM 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35183233/

相关文章:

c# - 如何在 WPF (xaml) 中读取 .csv 文件中的特定行

c# - 系统.诊断.进程参数

c++ - 如何将虚拟 com 端口写入 TCP 驱动程序?

python - 打印AT命令的输出

Python 3.3.3 IDLE 在保存和创建新文件时关闭

linux - 自定义设备的 USB 用户空间设备驱动程序

当我通过 USB 集线器连接串行设备时,Linux 进程进入 D 状态

c# - EigenObjectRecognizer 与 EigenFaceRecognizer 哪个更好

c# - 使用匿名方法来避免创建一次性对象?

c++ - 将用于串行通信的消息存储为 C++ 可行解决方案中的成员变量?