本地过程调用

✍ dations ◷ 2025-06-09 03:16:47 #进程间通信

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

相关

  • 色欲性欲,指对性的渴望。一般科学家认为,性欲是一种本能欲望,对于繁殖下一代有利。至于对大多数动物而言,性欲只存在于发情期时,而动物的发情期通常都是季节性的(例如春天)。对于某些宗
  • 体积模量体积模量 ( K {\displaystyle K} )也称为不可压缩量,是材料对于表面四周压强产生形变程度的度量。它被定义为产生单位相对体积收缩
  • 不育症不孕(英语:Infertility)又称不育,是指人类、动物或植物无法透过有性生殖繁衍后代的情形。对于大部分健康的成熟动植物个体而言,会在生命中的特定时期内有生育能力,不过真社会性物
  • 嘻哈文化Hip-Hop(英语:Hip hop),是1970年代源自纽约市南布朗克斯与哈林区的非洲裔及拉丁裔青年之间的一种边缘性次文化,继而发展壮大成为新兴艺术型态,并席卷全球。Hip-Hop包含说唱、DJ、
  • 受贿罪贿赂、受贿罪是指个人利用职务上的便利,索取他人财物,或者非法收受他人财物,为他人谋取利益的行为。而这些利益并不能从正常的合法途径中得到。此为贪污犯罪之一。商业贿赂是指
  • 格兰查科格兰查科(Gran Chaco),又译作“大厦谷”或“大查科”,亦意译为大猎场,是南美洲中部的冲积平原。这个地名是由是西班牙语“Gran”(大的)和瓜拉尼语“Chaco”(狩猎场)组成。格兰查科位
  • 黄志忠黄志忠(1969年3月5日-),中国演员,毕业于中央戏剧学院,出生于天津,原天津体工大队青年队篮球运动员。与前妻何音于2011年1月离婚。
  • 索诺拉州索诺拉州 (西班牙语:Sonora)是墨西哥三十一个州之一,西临加利福尼亚湾,北邻美国新墨西哥州和亚利桑那州,西北隔科罗拉多河与下加利福尼亚半岛分开。首府埃莫西约,下分72市。蒂布龙
  • 围栏围栏,又叫篱笆、栅栏、护栏,于中国北方则多称杖子。为用来保护院子、田园及园艺的一种设施,一般都是由棍子、竹子、芦苇、灌木、石头构成,依种类不同上有其他材料(如:金属栅栏、塑
  • 2015年东南亚运动会老挝代表团老挝代表团将参加2015年6月5日至6月15日的新加坡第二十八届东南亚运动会