本地过程调用

✍ dations ◷ 2025-11-19 18:24:27 #进程间通信

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

相关

  • 化学疗法人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学化学疗法(英语:Chemotherapy),简称化疗(Che
  • 苯炔芳炔是从芳环去除两个邻位取代基后(剩下含两个电子的两个轨道)得到的电中性活性中间体。 与碳烯和氮烯类似,芳炔也有单线态和三线态各一个。苯炔(C6H4,右图标号1)是最简单的芳炔。
  • 总担触手冠动物(拉丁语:Lophophorata),一切具有触手冠(口周围成扇形排列的一圈具纤毛之触手)的无脊椎动物。包括苔藓动物门(Bryozoa)、腕足动物门(Brachiopoda)、帚形动物门(Phoronida)。主
  • 游戏规则《游戏规则》(法语:La Règle du jeu)是知名法国导演让·雷诺阿的作品,剧情描述第二次世界大战时期的上流社会,于1939年上映。《游戏规则》是让·雷诺阿的代表作之一,也被广泛的视
  • 佛朗西斯·克里克弗朗西斯·哈利·康普顿·克里克,OM,FRS(英语:Francis Harry Compton Crick,1916年6月8日-2004年7月28日),英国生物学家、物理学家及神经科学家。他最重要的成就是1953年在剑桥大学
  • 戈特利布·戴姆勒戈特利布·威廉·戴姆勒(德语:Gottlieb Wilhelm Daimler,1834年3月17日-1900年3月6日),德国发明家、企业家,汽车发明者之一。1885年设计出内燃机,并造出了第一辆四轮汽车。卡尔·奔
  • 非法砍伐非法砍伐,是指违反法律进行的木材砍伐、运输、购买和销售行为。非法的砍伐行为,包括使用破坏性的手段进行砍伐;在没有许可的情况下进行砍伐;砍伐受保护的树种;或者砍伐森林超过许
  • 爆炸品爆裂物分为军用、商用、急造及自然四种,军用爆裂物的威力比较大,爆炸性化学品制作的军用及商用爆裂物属于管制物品。急造则以身边所有的可用物品,以一定比例混合而成。需要具有
  • 第一次中东战争起初10,000人,后升至20,000人 起初5,000人,后升至15,000人—18,000人 2,500人—5,000人 6,000人—12,000人 起初1,000人,后升至2,000人 800人—1,200人 北也门王国阿拉伯
  • 德裕山德裕山国立公园(朝鲜语:덕유산국립공원/德裕山國立公園 Deogyusan Gungnip Gongwon */?)是位于韩国全罗北道茂朱郡、长水郡以及庆尚南道居昌郡、咸阳郡交界处的山岳型国立公园