Недокументированные функции NTDLL

27 января 2001



NtAcceptConnectPort (ZwAcceptConnectPort)

NTSYSAPI
NTSTATUS
NTAPI

NtAcceptConnectPort(

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 ввода-вывдоа объекта "Порт" установленного соединения.
  • AlternativeReceivePortHandle     
  • ConnectionReply     Указатель на структуру LPC_MESSAGE, полученную из NtListenPort.
  • AcceptConnection     Если не установлено, соединение на клиентской стороне будет отклонено.
  • ServerSharedMemory     Если соединение использует большие буферы данных и HANDLE объекта "Секция" для окна разделяемой памяти создан на стороне клиента, процесс на стороне сервера должен поместить в этот параметр указатель на структуру LPC_SECTION_OWNER_MEMORY с заполненным полем SectionHandle.
  • ClientSharedMemory     Похоже на ServerSharedMemory, но когда клиент соединения создаёт объект "Секция". В этом лучае сервер не знает HANDLE секции, но окно разделяемой памяти автоматически размечается в его адресное пространство. Размер и базовый дарес разделяемой памяти возвращается в виде структуры LPC_SECTION_MEMORY.


    Функция возвращает HANDLE на вновь созданный объект "Порт". Все другие функции LPC для принятых на данный момент соединений должны использовать этот HANDLE, а не базовый HANDLE именованного порта, созданный с помощью NtCreatePort.


    Документировал:
    Томаш Новак
    Бо Брантен



    Зависимости:
    Библиотека: ntdll.lib


    См. также:
    LPC_MESSAGE
    LPC_SECTION_MEMORY
    LPC_SECTION_OWNER_MEMORY
    NtCompleteConnectPort
    NtCreatePort
    NtListenPort