本地过程调用

✍ dations ◷ 2025-11-27 06:43:50 #进程间通信

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

相关

  • 摩擦癖摩擦癖,又称挤恋、挨擦癖(frottage,frotteurism),指在拥挤的场所故意摩擦他人,甚至用性器官碰撞他人的身体,并可伴有自慰等性刺激来达到性兴奋的人。摩擦癖者通常在人多拥挤的公共
  • 支气管哮喘喘息 、哮喘(英语:asthma,又称气喘)是常见的气道慢性炎症疾病,主要特征是多变和复发的症状、可逆性气流阻塞,和支气管痉挛(英语:bronchospasm)。常见症状表现为喘息 、咳嗽、胸腔紧
  • 尼古拉·卡诺尼古拉·莱昂纳尔·萨迪·卡诺(Nicolas Léonard Sadi Carnot,1796年6月1日-1832年8月24日),法国物理学家、工程师,常被形容为“热力学之父”。尼古拉·卡诺在1824年6月12日发表了
  • 德美关系德美关系是指德国和美国间的外交关系。现在美国被认为是德国最亲密的盟友和欧盟以外最重要的合作伙伴之一。2014年,由于美国中央情报局窃听德国总理默克尔的电话,两名德国情治
  • 路德维格·A·柯丁路德维格·奥古斯特·柯丁(丹麦语:Ludwig August Colding,1815年7月12日-1888年4月21日)是一位丹麦土木工程师和物理学家,他与詹姆斯·普雷斯科特·焦耳和尤利乌斯·罗伯特·冯·
  • 北京邮电大学世纪学院北京邮电大学世纪学院是经中华人民共和国教育部批准,由北京邮电大学与北京学涵教育科技有限公司合作举办的全日制本科普通高等学校,是教育部直属高校在京举办的第一所独立学院
  • 吕中吕中(1940年12月17日-),中国大陆女演员。出演过多部电视剧和电影,代表作为2000年代电视剧《神探狄仁杰》饰演武则天。凭借2014年电影《闯入者》获得第30届金鸡奖最佳女主角提名。
  • 名讳名讳是对本名的另一称呼。不少文化中都有本名与灵魂相连的宗教思想,因此对本名用字有一定的要求和禁忌,日常使用中也有特别注意之处,在英语中称为“True name”。在中国、日本
  • II型干扰素结构 / ECOD II型干扰素只有干扰素伽玛(干扰素-γ, Interferon-γ)一个成员。 成熟的干扰素伽玛蛋白是反平行二聚体,可以与结合到干扰素伽玛受体(IFNGR),干扰素伽玛受体由两个亚基
  • 黏孢子虫黏孢子虫(Myxosporea)是黏体动物(Myxozoa,有人称黏体动物亚门与黏体动物门)的一个纲。下有近1100种生物,较为知名的如寄生虫脑粘体虫()与Alataspora solomoni、Ceratomyxa shasta(英