Esta API, al igual que
CreateProcess, crea un proceso nuevo pero con las credenciales de otro usuario, es decir, no las hereda del proceso padre.
Te habrás fijado que esta API trabaja con wchar_t* en lugar de char*. Esta es la forma de trabajo interno de Windows.
El parámetro
dwLogonFlags puede ser LOGON_WITH_PROFILE, en este caso cagagrá el perfil completo del usuario desde el Registro de Windows. Esto puede ser un poco lento. Si se coloca el flag LOGON_NETCREDENTIALS_ONLY, solo se activan las credenciales de red, siendo más rápido.
lpStartupInfoEs un a estructura
STARTUPINFO, que contiene los datos de entorno gráfico y de escritorio. Si está vacía se adopta el entorno del proceso de llamada.
lpProcessInfo es una estructura PROCESS_INFORMATION en ella se nos devuelven datos sobre el proceso creado. Ten en cuenta que en ella se dan los Handles hProcess y hThread que deberás liberar al final (
CloseHandle) si no te hacen falta. También se devuelven mas datos del proceso.
Saludos.