本地过程调用

✍ dations ◷ 2025-11-29 01:36:37 #进程间通信

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

相关

  • 估计资讯在统计学中,估计量是基于观测数据计算一个已知量的估计值的法则:于是估计量(estimator)、被估量(estimand)和估计值(estimate)是有区别的。估计量用来估计未知总体的参数,它有时也被
  • 灰汤温泉灰汤温泉,位于湖南省长沙市宁乡县灰汤镇西南的东务山下,乌江河畔,距离宁乡县城45千米,是三国时期蜀国丞相蒋琬的故乡。因此地温泉沸腾如滚汤,热气腾腾如灰雾,故而命名为“灰汤”。
  • 干红葡萄酒干红葡萄酒(le vin rouge),“干”是从香槟酒酿造中借用的一个词,即不添加任何水、香料、酒精等添加剂,直接用纯葡萄汁酿造的酒。红葡萄榨汁后,不过滤葡萄皮核,葡萄汁酿成酒后再过
  • 评书评书,又称说书,湖北、广东粤语地区及闽南语地区称讲古,在四川称为讲书,古称说话,是中国东北、华北、 两广、湖广、四川一带一种口头讲说的表演形式,在宋代开始流行。各地的说书人
  • 英文世界英语世界指使用英语作为官方语言或官方语言之一的国家。世界上的英语国家有:英国、美国、加拿大、澳大利亚、新西兰等国家。同时,英语世界也可以指使用英语的地区。该饼图显示
  • 华尔街见闻华尔街见闻是中国内地一个财经网站,成立于2013年。尽管名称相似,但华尔街见闻与华尔街日报并没有关系。2019年6月,华尔街见闻涉嫌违反中华人民共和国网络安全法而被下架整改。
  • 走私、贩卖、运输、制造毒品罪走私、贩卖、运输、制造毒品罪,是指《中华人民共和国刑法》所规定的一个罪名,最高可以判处死刑,八大罪之一。走私、贩卖、运输、制造毒品,有下列情形之一的,处15年有期徒刑、无期
  • Kopitiam邻里咖啡店或传统咖啡店(马来语:Kopitiam)是一种结合传统早餐和咖啡店的东南亚流行饮食文化,Kopitiam一词是结合马来语中的咖啡(kopi)和福建话中的店(白话字:tiàm)而成的混合词。典
  • 瓦尔特·列文瓦尔特·亨德里克·古斯塔夫·列文(英语:Walter Hendrik Gustav Lewin,1936年1月29日-),荷兰裔美国人,天体物理学家,曾在麻省理工学院担任物理教授。列文在天文物理学上的贡献包括了
  • 石井正忠石井正忠(1967年2月1日-),前日本足球运动员。