本地过程调用

✍ dations ◷ 2025-05-19 15:47:30 #进程间通信

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

相关

  • 性质在逻辑学、数学和哲学中,性质(英语:property)是对象的特征,例如:红苹果的性质包括红性(英语:redness,直译:红的-名词标记)。性质可以被认为是对象拥有的形式。但是,性质和那些独立的例示
  • 梅兰妮·克莱因梅兰妮·克莱恩(Melanie Klein,1882年3月30日-1960年9月22日),英国精神分析学家,生于维也纳,主要贡献为对儿童精神分析以及客体关系理论的发展。
  • 超新星核合成超新星核合成是阐明新的化学元素如何在超新星内产生,主要发生在易于爆炸的氧燃烧和硅燃烧的爆炸过程产生的核合成。这些融合反应创造的元素有硅、硫、氯、氩、钾、钙、钪、钛
  • 群件群件(Collaborative software或Groupware),又称为群组软体、協同軟件、协作软件。群件是一个“网络软件”的概念,它定义了由一组(群)人使用的应用程序。它是基于这样一个设想,因为
  • 飞行速度飞行速度记录是特定种类飞行器所能达到的最高速度。所有官方航空记录都由国际航空联合会(FAI)定义并正式通过。飞行记录被分为若干个级别和副分类。飞行器被分为三个种类:陆基
  • 氢甲酰化反应氢甲酰化反应也称羰基合成,是工业上用烯烃与氢气及一氧化碳在高压(10-100atm)加热(40-200°C)和过渡金属催化下反应制备醛类的方法。反应的总体结果是醛基和氢分别加到烯烃双键的
  • 长足虻科Dolichopidae长脚虻科(Dolichopodidae)是一种双翅目的长脚苍蝇,全世界有超过 7,000 种。长脚虻科一般都有一双长腿,但有些没有。他们的特征经常有一双短翅,大大的复眼。长脚虻科
  • 丹佛金块丹佛掘金(英语:Denver Nuggets),是一支位于美国科罗拉多州丹佛的NBA篮球队,分属于西部的西北赛区,主场为百事中心。球队在1967-1976年加入ABA联盟,1976年起加入NBA。历史上曾在1975-
  • 布里斯托尔坐标:41°40′52″N 72°56′26″W / 41.68111°N 72.94056°W / 41.68111; -72.94056布里斯托尔(英语:Bristol),绰号铃城 (Bell City)和菊城 (Mum City),是美国康乃狄克州哈特福德县
  • 解剖学基础模型解剖学基础模型,又称解剖学基础模型本体(Foundational Model of Anatomy Ontology, FMA),是解剖学领域的一部参考本体。它是对生物体典型的表现型结构的符号表达形式;FMA是一部由