gpt4 book ai didi

serial-port - Hyper-V:通过命名管道连接虚拟机会丢失数据

转载 作者:行者123 更新时间:2023-12-04 12:56:19 25 4
gpt4 key购买 nike

我们正在尝试通过串行端口连接两个Hyper-V VM。 Hyper-V将串行端口作为命名管道公开给主机系统,并实现命名管道的服务器端。因此,要连接它们,我们需要编写一个命名管道客户端,该客户端连接到两个VM,并来回复制数据。

We have written such an application。不幸的是,此应用程序丢失了数据

如果我们连接两个 super 项,并让它们交换数据,则传输有时会成功,但是在许多情况下,接收端会报告错误,或者传输只是死锁。同样,如果使用链接运行内核调试器,它似乎也经常挂起。

数据丢失的原因可能是什么?以这种方式连接命名管道时,必须采取哪些预防措施?

编辑:我们已经使用kdsrv.exe解决了这个问题。调试对象的COM端口继续通过命名管道公开,但是,调试器端通过TCP与kdserv对话。

最佳答案

数据丢失不是由于命名管道引起的。实际上,COM端口(仿真的和物理的)可能会丢失数据,因为它们使用UART中的小缓冲区运行。

命名管道接收所有写入COM端口的数据。您的程序从命名管道读取数据,并将其写入另一个命名管道。如果您写得太快,接收COM端口的UART会溢出而导致数据丢失,这就是数据丢失的原因。

您可能需要增加一些延迟,以避免超过接收方预期的波特率。

此外,您在程序中缺少ResetEvent()调用。

对于您的KD问题,您可能需要在连接字符串中添加 resets=0

关于serial-port - Hyper-V:通过命名管道连接虚拟机会丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com