16、深入解析高级本地过程调用(ALPC)

深入解析高级本地过程调用(ALPC)

1. 高级本地过程调用简介

现代操作系统需要一种机制,用于在用户模式下的一个或多个进程之间,以及内核中的服务与用户模式下的客户端之间安全高效地传输数据。常见的 UNIX 机制(如邮件槽、文件、命名管道和套接字)可用于实现可移植性,开发者也可以使用特定操作系统的功能,例如 Win32 图形应用程序中常用的窗口消息。

Windows 实现了一种内部的进程间通信(IPC)机制,称为高级(或异步)本地过程调用(Advanced Local Procedure Call,ALPC)。它是一种高速、可扩展且安全的设施,用于传递任意大小的消息。需要注意的是,ALPC 取代了早期 Windows NT 内核设计中最初使用的旧 IPC 机制 LPC。如今,为了兼容性,LPC 在 ALPC 之上进行模拟,并且已从内核中移除(但遗留的系统调用仍然存在,它们会被包装成 ALPC 调用)。

ALPC 在 Windows 的各个部分得到了广泛应用:
- 远程过程调用(RPC) :使用 RPC 的 Windows 应用程序,当通过 ncalrpc 传输指定本地 RPC 时,会间接使用 ALPC。现在,ncalrpc 几乎是所有 RPC 客户端的默认传输方式。此外,Windows 驱动程序在利用内核模式 RPC 时,也会隐式使用 ALPC。
- 进程和线程启动及子系统操作 :Windows 进程和/或线程启动时,以及任何 Windows 子系统操作期间,ALPC 用于与子系统进程(CSRSS)进行通信。所有子系统都通过 ALPC 与会话管理器(SMSS)进行通信。
-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值