本地过程调用

✍ dations ◷ 2025-08-14 10:14:57 #进程间通信

本地过程调用(LPC,Local Procedure Call,通常也被称为轻量过程调用或者本地进程间通信) 是一种由Windows NT内核提供的内部进程间通信方式。通过这一方式,同一计算机上的进程可以进行轻量的通信。在Windows Vista中,ALPC(Advanced Local Procedure Call,高级本地进程通信)替代了LPC。ALPC提供了一个高速可度量的通信机制,这样便于实现需要在用户模式下高速通信的用户模式驱动程序框架(UMDF,User-Mode Driver Framework)。

本地过程调用接口是Windows NT未公开原生API的一部分。这样的API不能够直接使用,但是可以通过如下方式间接使用:

LPC由内核的“端口”对象实现,这样可以确保安全(由访问控制表规定持有特定的安全标识符才可以访问)并可以验证链接另一端进程的身份。程序也可以对每一个信息设定安全标识符,并测试对应信息的变化,以实现每一条消息的安全性。

服务端和客户端之间典型的连接由下列过程表示:

本地过程调用支持以下三种交换信息的方式:

高级本地过程调用(ALPC)拥有比以往的本地过程调用(LPC)更优的性能。因为LPC只能通过同步请求/应答机制通信,而ALPC还可以使用IOCP实现通信。这样,ALPC就可以在消息数量和进程数量间保持一定平衡,保证了端口的高速通信。此外,ALPC还允许信息的批量传输,减少了进程在用户模式和内核模式之间的切换次数。

本地过程调用在Windows NT及其衍生系统中得到了广泛应用。在Win32子系统中,LPC应用于客户端和子系统服务器之间的通信(CSRSS)。在Windows NT 3.51版本中引入了快速LPC以提高调用速度。然而由于NT4.0中将部分关键服务端移入内核模式(win32k.sys)以提高系统效能,这一方法已基本被摒弃。

本地安全认证子系统服务(LSASS),会话管理器(SMSS)以及服务控制管理器均使用LPC端口和客户进程直接通信。Winlogon和安全引用监视器与LSASS进程之间的通信同样使用了LPC。

正如前文提到的,当消息在同一计算机内传输时,Microsoft RPC将调用LPC进行通信。许多仅在同一计算机内进行通信的服务采用LPC作为唯一的通信方式。远程对象连接与嵌入和分布式组件对象模型的实现也在很多地方使用了LPC作为本地通信的方式。

相关

  • 输血输血是一种治疗措施,可算是一种支持性与代偿性的疗法。出现场合包括了外科手术备血以防术中失血过多、严重贫血等等。输血可以针对不同血液成分(或称“血品”)进行输入,包括了全
  • 爱玛·博尼诺爱玛·博尼诺(意大利语:Emma Bonino,1948年3月9日-),意大利政治家,曾担任外交部长。她曾是欧洲议会成员、意大利参议院成员。她自2006年至2008年间担任意大利国际贸易部长,是意大利
  • 原稿纸参数所指定的目标页面不存在,建议更正成存在页面或直接建立下列一个页面(建立前请先搜寻是否有合适的存在页面可以取代):原稿纸或称为稿纸,是一种用以书写的纸张,每张纸均有200~600
  • 卡塔哥市卡塔戈是哥斯达黎加的城市,也是卡塔戈省的首府,位于该国中部,始建于1563年,面积152平方公里,海拔高度1,435米,每年平均降雨量1,402毫米,2008年人口156,600。
  • 坐浴坐浴(英语:Sitz bath)是建议患者将臀部浸泡在水中的的一种护理方式,用于缓解身体下部的不适和疼痛,例如由于痔疮、肛裂、直肠手术、会阴切开术、子宫痉挛、炎症性肠病,以及膀胱、
  • 赤眉赤眉军是中国新莽末年起事的军队之一,因起事者将眉毛染红,示其别于政府军,故称作赤眉军。赤眉军于天凤五年(公元18年)在莒(今山东莒县)起事,首领为琅琊人樊崇,以泰山山区一带为根据地
  • 苏花公路苏花公路是位于台湾东海岸的干线公路,为省道台9线、台9丁线的一段,在日治时倡议修筑原先清代之北路为“临海道路”,1932年5月通车,二次世界大战后改名苏花公路,之后并持续新建隧
  • 新宾满族自治县新宾满族自治县,是辽宁省抚顺市下辖的一个自治县,总面积4432平方千米。地处长白山脉。年均降水量769.6毫米,年均温4.7℃。矿藏有煤炭、金、银、铜、铅等。下辖10个镇、10个乡:新
  • 资讯传播学系资讯传播学系,(简称资传系),为大学院校中的科系之一,英译为Department of Information and Communication。为因应传播数字化之现况与趋势,资讯传播学系为一个跨领域学习的科系,涵
  • 女权纳粹女权纳粹(英语:Feminazi),又有音译“费米纳粹”。此词指极端的或者好战的“女权主义”者,有戏谑意味,经常被美国保守派用来称呼一些他们眼中的激进女权主义者。因其贬义含义,同时反