本地过程调用

✍ dations ◷ 2025-12-06 09:08:51 #进程间通信

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

相关

  • 中子捕获治疗(NCT)中子俘获疗法(NCT)是用于治疗局部侵入性恶性肿瘤如原发性脑肿瘤和复发性头颈部癌的一种非侵入性治疗方法。NCT分两个步骤进行,首先是给病人注射一种含有对慢中子具有俘获倾向性
  • 趋光性趋光性(英语:Phototaxis)是一种生物对光靠近或者远离的趋性。在有趋光性的生物中,拥有正趋光性的会靠近光源,而有负趋光性的会躲避光线的刺激。这样对于植物等自养生物来说十分重
  • 乔治·比德尔·艾里乔治·比德尔·艾里爵士,FRS(英文:Sir George Biddell Airy,1801年7月27日-1892年1月2日 ),英格兰数学家与天文学家,于1835年至1881年之间担任皇家天文学家。他许多的贡献包括在行星
  • 十二羟基环己烷十二羟基环己烷是一种有机化合物,分子式为C6(OH)12。它是一种以环己烷为骨架,外加六重偕二元醇的分子,它更可被视为环己六酮的六重水合物。
  • 祭礼祭祀,(英语:祭:sacrifice;祀:ritual;韩语:한국의 제사,罗马化:Jesa)是指以线香、酒水、肉类、蔬果,或布帛和玉(传统儒教祭祀)等供品向神灵、圣徒或者亡魂奉献、祈祷的一种行为。中国古代
  • 黑麦面包黑麦面包又被常称为裸麦面包或者黑面包,是一种主要由裸麦和面粉制成的面包。根据成分不同,其颜色也深浅不一,一般比较以小麦所制成的白面包深,也含有更多的膳食纤维。纯裸麦面包
  • AMS计划阿尔法磁谱仪(Alpha Magnetic Spectrometer,又译反物质太空磁谱仪,简称AMS)是一个安装于国际空间站上的粒子物理试验设备,最初由麻省理工大学的物理学家,诺贝尔物理学奖得主丁肇中
  • 六旗魔术山游乐园六面旗或六面旗乐园(英语:Six Flags)是世界上最大的主题公园连锁品牌,总部设于德克萨斯州大草原城,在纽约市曼哈顿中城设有办事处。六面旗乐园管理着18家主题公园和水上乐园。六
  • 环境工程环境工程为应用科学与工程之方法来改善环境(包括空气、水、土地资源),进而为人类之居住以及其他生物体提供对健康有益的水、空气以及土壤,亦包括污染场址之复育。可经由教育大众
  • 东亚城市人口列表以下列出东亚的主要都市及其人口数:根据世界银行(World Bank)公布的“东亚都市景观变化”报告,2000年到2010年,东亚地区的都市人口新增近2亿人,东亚地区人口数超越10万的都会区已