本地过程调用

✍ dations ◷ 2025-10-15 04:06:24 #进程间通信

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

相关

  • 烟酸维生素 B3,维生素 PP烟酸(英语:niacin、nicotinic acid,也称维他命B3、维他命PP、吡啶-3羧酸),分子式:C6H5NO2,耐热,能升华。首次描述于Hugo Weidel于1873年对尼古丁的研究。它是人体
  • 资源导向型经济资源导向型经济(Resource-based economy, RBE),由维纳斯计划(金星工程/The Venus Project)的建筑工程师、工业设计师、未来学家的雅克‧法斯科发起,核心宗旨是用“科学技术和方
  • 小汉斯·霍尔拜因小汉斯·霍尔拜因 (德语:Hans Holbein der Jüngere,约1497年-1543年11月29日以前)是德国画家,最擅长油画和版画,属于欧洲北方文艺复兴时代的艺术家,他最著名的作品是许多肖像画和系
  • 神经发展综合征神经发育障碍或神经发展障碍(Neurodevelopmental disorder)是精神疾患中的一种。此用词有几种不同的定义,其中一种范围较窄的定义是指有关脑部,会影响情绪、一般学习能力、自我
  • 䴙䴘目.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings:
  • 泰国行政区划泰国的行政区划大致分为四个等级:府、县、区、村。第一级行政区在泰语称为“จังหวัด”( changwat),中文译为“府”。全国共有77个一级行政区,其中包括76个府与府级直辖市
  • 七鳃鳗亚纲Hyperoartia七鳃鳗亚纲(学名:Petromyzontida),又名八目鳗纲,是脊索动物门圆口纲下的一亚纲。目前已知共有现存 38 种、已灭绝 5 种的七鳃鳗,其中 18 种为寄生性的肉食动物,钻入鱼类
  • 爆破爆破(英语:blasting,blast)是指采取一定措施、利用爆炸性物质的爆炸能量对周围介质产生剧烈作用,以达到预定目标的操作。广义的爆破泛指一切利用爆炸性物质的爆炸能量来达到预定
  • 黑化黑化(英语:Melanism)是深颜色的黑色素在皮肤(或皮肤附属物,如毛发)当中逐步建立的过程,与白化症相反。假性黑化(英语:Pseudo-melanism,也称abundism),是另一种色素变化,表现为黑点或条纹
  • 偏凸山羊草偏凸山羊草(学名:)为禾本科山羊草属下的一个种。 维基物种中有关偏凸山羊草的数据