beginner
IPC 与组件边界
Windows 组件如何跨越进程边界使用本地 RPC、命名管道 (named pipes) 及其他消息通道进行通信。
Microsoft 官方文档
Microsoft Learn 上与此主题最相关的官方参考资料。
[
Microsoft Learn
选择协议序列
learn.microsoft.com
](https://learn.microsoft.com/en-us/windows/win32/rpc/selecting-a-protocol-sequence)[
Microsoft Learn
Named pipes
learn.microsoft.com
](https://learn.microsoft.com/en-us/windows/win32/ipc/named-pipes)
为什么它很重要
Windows 是由众多相互协作的进程构建而成的。如果不理解 IPC,系统看起来就像是一个个孤立的盒子,其间充斥着神奇的箭头。
思维模型
IPC 是组件之间的契约层。一个进程暴露功能或数据,另一个进程通过一个中介通道来访问它,而不是直接去触碰它的内存。
工作原理
- 1Windows 组件暴露如 ports、RPC 接口或 named pipes 这样的 endpoints。
- 2客户端使用为本地或远程通信设计的协议连接到这些 endpoints。
- 3安全描述符和 tokens 仍然适用,因此 IPC 不仅仅是消息传递,它也是一个策略边界。
关键术语
IPC
Inter-process communication(进程间通信),运行在分开的进程中的组件之间的通信。
Endpoint
客户端可以连接的一个已命名或注册的通信点。
RPC
Remote Procedure Call(远程过程调用),在另一进程或机器上调用功能的框架。
一个为桌面应用提供数据的服务
应用程序通常不读取服务的内存。它调用 IPC 机制并通过受支持的边界接收结构化的响应。
常见误区
IPC 并不是一个边缘子系统。它是 Windows 组件保持隔离同时仍然合作的默认方式之一。