Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Локальная межпроцессная связь (LPC, часто также называемая локальным вызовом процедур или легковесным вызовом процедур) — это внутренняя, недокументированная подсистема межпроцессного взаимодействия, предоставляемая ядром Microsoft Windows NT для организации легковесного IPC между процессами на одном компьютере. Начиная с Windows Vista, LPC была переработана в асинхронную локальную межпроцессную связь.
The Local Inter Process Communication (LPC, often also referred to as Local Procedure Call or Lightweight Procedure Call) is an internal, undocumented inter process communication facility provided by the Microsoft Windows NT kernel for lightweight IPC between processes on the same computer. As of Windows Vista, LPC has been rewritten as Asynchronous Local Inter Process Communication
Интерфейс (A)LPC является частью недокументированного Native API Windows NT и, следовательно, недоступен приложениям для непосредственного использования. Однако его можно использовать косвенно в следующих случаях:
при использовании Microsoft RPC API для локального взаимодействия, то есть между процессами на одном и том же компьютере;
путем вызова API Windows, реализованных с использованием (A)LPC (см. ниже).
The (A)LPC interface is part of Windows NT's undocumented Native API, and as such is not available to applications for direct use. However, it can be used indirectly in the following instances:
when using the Microsoft RPC API to communicate locally, i. e. between the processes on the same machine
by calling Windows APIs that are implemented with (A)LPC (see below)
Известное использование
(A)LPC широко используется для связи между внутренними подсистемами в Windows NT. Подсистема Win32 активно использует (A)LPC для обмена данными между клиентом и сервером подсистемы (CSRSS). В версии 3.51 Windows NT был представлен Quick LPC для ускорения этих вызовов. Однако в версии 4.0 от этого метода в значительной степени отказались в пользу переноса критически важных для производительности компонентов сервера в режим ядра (win32k.sys). Подсистема локальной службы безопасности (LSASS), менеджер сеансов (SMSS) и диспетчер служб используют порты (A)LPC напрямую для связи с клиентскими процессами. Winlogon и Security Reference Monitor используют его для связи с процессом LSASS. Как упоминалось ранее, Microsoft RPC может использовать (A)LPC в качестве транспортного протокола, когда клиент и сервер находятся на одном компьютере. Многие службы, предназначенные для работы только на локальном компьютере, используют (A)LPC как единственный транспорт через RPC. Реализация удаленных OLE и DCOM во многих случаях также использует (A)LPC для локальной связи.
(A)LPC is used heavily in communication between internal subsystems in Windows NT. The Win32 subsystem uses (A)LPC heavily for communication between client and the subsystem server (CSRSS). Quick LPC was introduced in version 3.51 of Windows NT to make these calls faster. This method was largely abandoned in version 4.0 in favor of moving the performance critical server portions into kernel mode (win32k. sys). The Local Security Authority Subsystem Service (LSASS), Session Manager (SMSS), and Service Control Manager all use (A)LPC ports directly to communicate with client processes. Winlogon and the Security Reference Monitor use it to communicate with the LSASS process. As mentioned, Microsoft RPC can use (A)LPC as a transport when the client and server are both on the same machine. Many services that are designed to communicate only on the local computer use (A)LPC as the only transport through RPC. The implementation of remote OLE and DCOM in many cases uses (A)LPC for local communication as well.