Stub

存根(如代理)由一个或多个接口段和管理器组成。 每个接口存根都提供代码来取消对调用对象支持接口之一的参数和代码进行取消划分。 每个存根还提供用于内部通信的接口。 存根管理器跟踪可用的接口存根。

但是,存根与代理之间存在以下差异:

  • 最重要的区别是存根表示对象地址空间中的客户端。
  • 存根不是作为聚合对象实现的,因为不需要将客户端视为单个单元;存根中的每个部分都是单独的组件。
  • 接口存根是私有的,而不是公共的。
  • 接口存根实现 IRpcStubBuffer,而不是 IRpcProxyBuffer
  • 存根在封送后将其解包,然后打包答复,而不是打包参数。

存根的结构

下图显示了存根的结构。 每个接口存根都连接到对象上的一个接口。 通道将传入消息调度到相应的接口存根。 所有组件都通过 IRpcChannelBuffer 与通道通信,该接口提供对 RPC 运行时库的访问权限。

Screenshot that shows the structure of the Stub.

渠道

对象间通信

封送处理详细信息

Microsoft RPC

Proxy