- NtCreateUserProcess с флагом для создания пустого процесса. Потом поверх пустого процесса и создаются пико-процессы. https://github.com/Microwave89/createuserprocess/blob/master/createuserprocess/main.c - пример вызова этого процесса. Эта функция появилась в висте+ https://github.com/Budskii/ulib-win/blob/master/demo/ddk/safe/safe.h#L458 пойнтер на нее, там выше есть struct. http://rsdn.org/forum/winapi/4972311.hot тред по ней же. https://en.wikipedia.org/wiki/Process_Environment_Block тут тоже есть инфа
https://www.intuit.ru/studies/courses/10471/1078/lecture/16573 - интересно, что на интуите есть инфа по этой функции. По ходу, они дернули ее из windows internals.
Интерфейс функции:
NtCreateUserProcess(PHANDLE ProcessHandle,
PHANDLE ThreadHandle,
PVOID Parameter2,
PVOID Parameter3,
PVOID ProcessSecurityDescriptor,
PVOID ThreadSecurityDescriptor,
PVOID Parameter6,
PVOID Parameter7,
PRTL_USER_PROCESS_PARAMETERS ProcessParameters,
PVOID Parameter9,
PVOID pProcessUnKnow)
Структура PRTL_USER_PROCESS_PARAMETERS описана в мсдне, но лучше ее глянуть в либе ulib-win: https://github.com/Budskii/ulib-win/blob/master/demo/ddk/safe/safe.h#L268
Функция NtCreateProcess в ReactOS: https://github.com/reactos/reactos/blob/master/ntoskrnl/ps/process.c#L1344