OUT PHANDLE ServerPortHandle,
IN HANDLE AlternativeReceivePortHandle OPTIONAL,
IN PLPC_MESSAGE ConnectionReply,
IN BOOLEAN AcceptConnection,
IN OUT PLPC_SECTION_OWNER_MEMORY ServerSharedMemory OPTIONAL,
OUT PLPC_SECTION_MEMORY ClientSharedMemory OPTIONAL );
Функция NtAcceptConnectPort используется в коммуникации LPC процессом на стороне сервера для установления соединения с клиентом. Должна быть вызвана после завершения NtListenPort.
ServerPortHandle
Результат вызоваю HANDLE ввода-вывдоа объекта "Порт" установленного соединения.
AcceptConnection
Если не установлено, соединение на клиентской стороне будет отклонено.
ServerSharedMemory
Если соединение использует большие буферы данных и HANDLE объекта "Секция" для окна разделяемой памяти создан на стороне клиента, процесс на стороне сервера должен поместить в этот параметр указатель
на структуру LPC_SECTION_OWNER_MEMORY с заполненным полем SectionHandle.
ClientSharedMemory
Похоже на ServerSharedMemory, но когда клиент соединения создаёт объект "Секция". В этом лучае сервер не знает HANDLE секции, но окно разделяемой памяти автоматически размечается в его адресное пространство. Размер и базовый дарес разделяемой памяти возвращается в виде структуры LPC_SECTION_MEMORY.
Функция возвращает HANDLE на вновь созданный объект "Порт". Все другие функции LPC для принятых на данный момент соединений должны использовать этот HANDLE, а не базовый HANDLE именованного порта, созданный с помощью NtCreatePort.