本地过程调用

✍ dations ◷ 2024-12-23 11:13:59 #进程间通信

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

相关

  • 仿星器仿星器(Stellarator)因模拟恒星内部持续不断的核聚变反应而得名,是以磁场约束核聚变等离子体,稳定运行提供动力的实验装置。它是最早期的受控核聚变装置中,最初美国物理学家莱曼
  • 类型论在最广泛的层面上,类型论(英语:type theory)是关注把实体分类到叫做类型的搜集中的数学和逻辑分支。在这种意义上,它与类型的形而上学概念有关。现代类型论在部分上是响应罗素悖
  • 百年战争百年战争(英语:Hundred Years' War;法语:Guerre de Cent Ans)是1337年至1453年期间,发生在金雀花王朝治下的英格兰王国和瓦卢瓦王朝治下的法兰西王国之间,针对法兰西王国统治权的战
  • 弗莱福兰弗莱福兰(荷兰语:Flevoland)是荷兰中部的一省。面积2,343平方公里。1986年1月1日建省,是荷兰第12省、最新的省份,分成6市。东北是弗里斯兰省、西南是北荷兰省、南是乌得勒支省、
  • 三多商圈高雄三多商圈,以三多路以及中山路为商圈主要干道,和梦时代商圈、五福商圈、巨蛋商圈并列高雄四大商圈,为台湾高雄市在1990年代至2000年代开始兴起的商圈。在新光三越百货和太平
  • CBS新闻广播CBS新闻广播(英语:CBS News Radio),曾用名“CBS广播新闻台(CBS Radio News)”及“CBS电台联播网(CBS Radio Network)”,是美国一家向本国超过1000个电台提供新闻节目的联播网。该联播
  • 产前护理产前护理是指妊娠期间作的医疗与检察。包括身体检查和营养教导,主要为孕妇提早发现问题,给予妇女在生产的指示,以致守护母胎的健康。产前护理属于预防性的医疗保健,在怀孕过程中
  • 斗部斗部,为汉字索引中的部首之一,康熙字典214个部首中的第六十八个(四划的则为第八个)。就繁体和简体中文中,斗部归于四划部首。斗部通常是从下、右方均可为部字。且无其他部首可用
  • 乳腺导管原位癌乳腺导管原位癌(Ductal carcinoma in situ,简称DCIS) ,也称为乳腺管原位癌或乳管内原位癌,是发生在乳房的癌前(pre-cancerous)病变或非侵袭性癌症。DCIS在乳癌阶段(英语:Breast cance
  • 图像群组在MPEG 视讯编码中,图像群组(Group of pictures,GOP)即I画格和I画格之间的画格排列。图像群组就是一组以MPEG编码的影片或视讯串流内部的连续图像。每一个以MPEG编码的影片或视