本地过程调用

✍ dations ◷ 2025-12-09 19:58:48 #进程间通信

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

相关

  • tachycardia心跳过速(tachycardia、tachyarrhythmia),也称心动过速、心跳过快。是指心跳速度超出了正常范围,达到每分钟一百次以上的现象。剧烈的体育运动、紧张、焦虑或服用某些药物等可能
  • 韦伯恩安东·弗雷德里克·威廉·冯·韦伯恩(德语:Anton Friedrich Wilhelm von Webern,1883年12月3日-1945年9月15日),又译韦伯恩,奥地利作曲家,第二维也纳乐派代表人物之一。韦伯恩1883年
  • 桫椤科Alsophila Amphicosmia Cnemidaria Cormophyllum Cnemidaria Cyathea桫椤属 Fourniera Gymnosphaera Hemitelia Nephelea Schizocaena Sphaeropteris Thysanobotrya Trichi
  • 兄弟牛肝菌兄弟牛肝菌(学名:Boletus fraternus),或称坚肉牛肝菌。菌盖呈红褐色带黄色,被覆细绒毛细鳞,夏、秋阔叶林地上群生。分布于台湾 、广东。可供食用。
  • 桨帆船桨帆船(Galley),音译贾列船,在公元前1000年后出现,以人力划船来作为主要动力的船种,能够只用划桨来前进,通常也用桅杆和帆作为次要的动力。桨帆船通常使用在战争与贸易中。在早期的
  • 斯坦尼斯劳斯斯坦尼斯劳斯县(Stanislaus County)是美国加利福尼亚州的一个县,县治莫德斯托。根据美国人口调查局2000年统计,共有人口446,997,其中白人占69.33%、亚裔美国人占4.22%、非裔美国
  • 埃里希·昂纳克埃里希·昂纳克(德语:Erich Honecker,国际音标:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code200
  • ATC代码 (V04)A·B·C·D·G·H·QI·J·L·M·N·P·R·S·VATC代码V04(诊断用药)是解剖学治疗学及化学分类系统的一个药物分组,这是由世界卫生组织药物统计方法整合中心(The WHO Collaborat
  • 槟城华人槟城华人是指生长于马来西亚槟城州的华人,为来自中国迁徙而来的移民后代。2017年,华人占槟城总人口的百分之四十左右,是州内第二大族群,也是马来西亚华裔比例最高的州属。槟城华
  • 草酸铜草酸铜是一种无机化合物,化学式为CuC2O4。草酸铜加热可以分解。草酸铜可由草酸钾和乙酸铜在乙醇-水混合溶剂中的反应制备。也可由草酸与硫酸铜反应制备,反应吸热。草酸铜可以