シリアルポート経由で2台のHyper-V VMを接続しようとしています。 Hyper-Vは、シリアルポートを名前付きパイプとしてホストシステムに公開し、名前付きパイプのサーバー側を実装します。結果的に、それらを接続するには、両方のVMに接続し、データを前後にコピーする名前付きパイプクライアントを作成する必要があります。Hyper-V:名前付きパイプ経由でVMを接続するとデータが失われる
We have written such an application。残念ながら、このアプリケーションはデータを失います。
2つのハイパーテキストを接続してデータを交換すると、送信が成功することがありますが、多くの場合、受信側でエラーが報告されたり、デッドロックが送信されたりします。同様に、リンクを使用してカーネルデバッガを実行すると、頻繁にハングアップするようです。
データ損失の原因は何ですか?このような方法で名前付きパイプを接続するときは、どのような注意を払う必要がありますか?
を編集してください:kdsrv.exeを使用して問題を回避しました。デバッガのCOMポートは、引き続き名前付きパイプを通じて公開されますが、デバッガはTCPを介してkdservと通信します。
提案していただきありがとうございます。転送を抑制することは少し役に立ちます。プレーンな "copy foo.txt COM1:"はすべてのデータを正常に送信できるようになりました。残念なことに、HyperTermはzmodem通信で依然としてデッドロックしているため、どこかでデータが失われている必要があります。 ResetEventについては、具体的にどこにありませんか? Async IOは、ReadFileとWriteFileでイベントを適切にリセットするように定義されています。明日はリセットをテストする= 0。 –
私の過ち。 ResetEventの必要はありません。 – John
この回答は問題を完全に解決するものではありません。それでも、それは私たちが得た最高の答えなので、私は恩恵を授与しています。問題を回避する方法については、私の編集を参照してください。 –