Criando processo independente!

Estou tentando criar um processo a partir de um serviço em C ++. Este novo processo está sendo criado como um processo filho. Quero criar um processo independente e não um processo filho ...

Estou usando a função CreateProcess para o mesmo. Como o novo processo que eu crio é um processo filho, quando tento matar a árvore de processos no nível de serviço, ele também está matando o processo filho ... Eu não quero que isso aconteça. Eu quero que o novo processo seja executado independentemente do serviço.

Por favor, conselhos sobre o mesmo .. Obrigado ..

Código

STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);    // Start the child process.
ZeroMemory( &pi, sizeof(pi) );
si.dwFlags = STARTF_USESHOWWINDOW;

if(bRunOnWinLogonDesktop)
{
    if(csDesktopName.empty())
        si.lpDesktop = _T("winsta0\\default");
    else
        _tcscpy(si.lpDesktop, csDesktopName.c_str());
}

if(bHide)
    si.wShowWindow = SW_HIDE;     /* maybe even SW_HIDE */
else
    si.wShowWindow = SW_SHOW;     /* maybe even SW_HIDE */



TCHAR szCmdLine[512];
_tcscpy(szCmdLine, csCmdLine.c_str());

if( !CreateProcess( NULL,
                szCmdLine,
               NULL,
               NULL,
               FALSE,
               CREATE_NEW_PROCESS_GROUP,
               NULL,        
               NULL,        
               &si,        
               &pi ) ) 

questionAnswers(2)

yourAnswerToTheQuestion