createprocess приостановлено по умолчанию [закрыто]

У меня есть эта функция внутри DLL:

int createChildProcess()
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    int res;

    si.cb=sizeof(STARTUPINFO);

    STARTUPINFO* ptr=&si;
    if(!CreateProcess(L"c:\\windows\\notepad.exe", NULL, 0, 0, false, CREATE_NEW_CONSOLE, 0, 0, &si, &pi))
    {
        mylog << "CreateProcess error: " << GetLastError() << std::endl;
        res = 0;
    }
    else
        res = pi.dwProcessId;

    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );

    return res;
}

И я нашел 2 проблемы:

1) При первом вызове функции всегда возвращать код ошибки 87 (параметр неверен.).

2) Во второй раз функция работает, но создает дочерний процесс в приостановленном состоянии, и загрузка процессора в родительском процессе достигает 100%.

Я тестирую с WinXP SP3, и моя DLL была скомпилирована в 2010 году.

любая помощь?

Ответы на вопрос(1)

Ваш ответ на вопрос