我们正在尝试通过串行端口连接两个 Hyper-V VM。Hyper-V 将串行端口作为命名管道公开给主机系统,并实现命名管道的服务器端。因此,为了连接它们,我们需要编写一个命名管道客户端来连接两个虚拟机,并来回复制数据。
我们已经编写了这样一个应用程序。不幸的是,这个应用程序丢失了数据。
如果我们连接两个超项,让它们交换数据,有时传输会成功,但很多情况下,接收端会报错,或者传输只是死锁。同样,如果我们使用该链接运行内核调试器,它似乎也经常挂起。
数据丢失的原因可能是什么?以这种方式连接命名管道时必须采取哪些预防措施?
编辑:我们已经使用kdsrv.exe解决了这个问题。调试器的 COM 端口继续通过命名管道公开,但是,调试器端通过 TCP 与 kdserv 通信。