本地过程调用

✍ dations ◷ 2025-12-05 08:11:34 #进程间通信

本地过程调用(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作为本地通信的方式。

相关

  • 海绵多孔动物门(学名:Porifera)为原始的多细胞生物,也称海绵动物门(Spongiatia或Spongia),一般称为海绵。海绵没有神经元/神经系统、消化和循环系统,相反,它们大多依靠海水流过自己的身体
  • CBrsub4/sub四溴化碳是溴取代甲烷上所有氢的产物,化学式为CBr4。四溴化碳有两种晶型,在46.9°C以下的晶型II(或β)和在46.9°C之上的I(或α)。单晶有C2/c空间群,晶胞参数为a = 20.9, b = 12.1,
  • 恐龙皮肤恐龙皮肤目前已发现许多兽脚亚目恐龙具有羽毛,包含:鸟面龙、中华龙鸟、帝龙。另一群大型的兽脚类恐龙,镰刀龙超科,可能也具有羽毛;其中的北票龙似乎具有绒羽。但恐龙的羽毛痕迹大
  • 斯德望斯德望(新教汉译作士提反或司提反;拉丁语:Sanctus Stephanus)是基督教首位殉道者。西方教会定其庆日于12月26日。耶路撒冷说希腊语的犹太人抱怨在每天所分发的粮食方面,说希伯来
  • 赵善欢赵善欢(1914年8月16日-1999年12月2日),原籍广东高要,生于广东广州,中国昆虫学家。1933年毕业于中山大学农学院农业专门部。1936年至1939年分别获得美国阿力近农业大学学士学位和康
  • 怪谈怪谈是日语的一个名词,用来总呼日本自古以来灵异故事。有时泛指任何恐怖故事,但有时亦指江户时代的灵异故事集。当中,四谷怪谈、皿屋敷及牡丹灯笼被认为是日本三大怪谈。
  • 加布里埃尔·巴蒂斯图塔加布里埃尔·奥马尔·巴蒂斯图塔(Gabriel Omar Batistuta,1969年2月1日-)生于阿根廷圣菲省的雷孔基斯塔,阿根廷著名足球运动员,已退役。阿根廷足球传奇巨星之一。曾长时间效力于意
  • 清朝外交清朝初期,清朝政府与俄罗斯沙皇国政府签订了《尼布楚条约》,该条约中国称为平等条约,俄罗斯(含苏联时期)称为不平等条约(俄罗斯人认为《瑷珲条约》中收回了被中国人强占的失地)。有
  • 普莱恩斯 (佐治亚州)普莱恩斯(英语:Plains)是位于美国佐治亚州萨姆特县的城市。根据美国人口调查局2000年统计,共有人口637人,是阿梅里克斯小都市统计区域的一部分。美国第三十九任总统吉米·卡特与
  • 凯瑞·布朗 (历史学家)凯瑞·布朗(Kerry Brown)是一名英国历史学家、政治学家,目前担任伦敦国王学院中国研究所主任。在此以前,曾在英国外交及联邦事务部以及悉尼大学任职。早年从剑桥大学冈维尔与凯