本地过程调用

✍ dations ◷ 2025-11-29 17:20:49 #进程间通信

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

相关

  • 隔离检疫隔离检疫 是风险管理的一种设施。 当人类、动物、植物等,由一个地方进入另一个地方,为防带有传染病等,所以必须进行隔离检疫。本条目出自公有领域:Chisholm, Hugh (编). Quarant
  • 在子宫内In utero是拉丁词汇,字面意思是“在子宫里”。在生物学里它常被用来描述胚胎或胎儿状态。法律上指未出生婴儿。
  • 异常行为异常行为(或功能障碍行为)是一种行为特征,归因于那些被认为是罕见或功能障碍的病症。由社会不接受的行为组成,行为在非典型或不寻常的情况下被认为是不正常的,并且导致个体活动受
  • 罗泌罗泌(1131年—1189年),字长源,号归愚。南宋吉州庐陵(今江西吉安)人。生于宋绍兴辛亥(1131年),自少力学,精于诗文,无意于仕途。乾道年间著有《路史》四十七卷,曾亲自到炎帝陵考察。另著有
  • 十一酸诺龙十一酸诺龙(英语:Nandrolone undecanoate或 nandrolone undecylate,商品名为Dynabolon、Dynabolin、Psychobolan),分子式C29H46O3,是一种雄激素和同化类固醇(AAS)药物,是19-去甲睾酮1
  • 行政院农业委员会动植物防疫检疫局行政院农业委员会动植物防疫检疫局(简称动植物防疫检疫局、防检局)是中华民国行政院农业委员会的附属机关,成立于1998年8月1日,负责动植物的防疫检疫工作。
  • 麝鼠麝鼠(学名:Ondatra zibethicus)是麝鼠属中的唯一成员,是北美洲本土较大的水栖啮齿目动物,并传入欧洲的一些部分。它们在中大西洋被称为“沼泽松鼠”。成年的麝鼠通常长约25-40厘
  • 1920第七届夏季奥林匹克运动会(英语:the Games of the VII Olympiad,法语:les Jeux de la VIIe Olympiade,荷兰语:de Spelen van de VIIe Olympiade),于1920年4月20日至9月12日在比利时
  • 旧金山轻轨E线旧金山轻轨E线,又称E内河码头路线(英语:E Embarcadero)为美国加州旧金山交通营运单位旧金山城市铁路的第二条历史街车路线。最早是于2008年当星期日于内河码头有举办街道活动时
  • 猪大肠猪大肠也叫肥肠,是一种常见的猪内脏副食品。