命名管道在 windows 中如何工作?

How does the named pipe works in windows?

我正在研究 windows 中的 IPC 机制,并试图了解它在内部是如何工作的。当谈到管道(命名管道)时,到目前为止我还没有找到任何具体的答案。

由于文件映射使用文件(内部)共享数据,文件地址作为指针映射到每个进程地址,进程可以使用指向 read/write 的指针指向文件。

有人能以类似的方式帮助我了解管道的内部工作原理吗?谁掌握管道服务器和管道客户端之间的数据?

数据在内部内核缓冲区中存储和管理,当所有管道句柄关闭时释放。它可以在通信过程中扩展和收缩。此外,由于跨网络的通信能力,服务器端和客户端的缓冲区可能很少。您可以在 Russinovich 的 Windows Internals 中阅读更多相关内容(不幸的是,无法准确说明在何处阅读)。