CreateProcessW не создаёт процесс

Здраствуйте! Пытаюсь открыть новый процесс и мне обязательно нужно сделать так, чтобы дочерний процесс наследовал определённые дескрипторы родительского процесса. Я знаю о том, что в CreateProcessW есть аргумент, который указывает будут ли наследоваться дескрипторы родительского процесса, но, как только я устанавливаю этот аргумент в значение TRUE, процесс не запускается, при этом GetLastError() равен 0 и метод CreateProcessW возвращает 0-вое значение (на MSDN это означает успешное завершение функции), а значит по логике windows функция выполнилась успешно. В интернете ответов не нашёл. Подскажите пожалуйста, есть ли другой способ передать определённые дескрипторы процессу? (Про функцию DuplicateHandle() знаю и пытался её использовать, но на MSDN не описан аргумент dwDesiredAccess для дескрипторов, а значит я не могу создать дескриптор с правами на наследование дочерними процессами).

STARTUPINFOW SInfo;
PROCESS_INFORMATION PI;
main() {
    int crpipret = CreatePipe(hReadPipe, hWritePipe, 0, DEFAULT_BUFLEN);
    if (crpipret == 0) {
        ShutdownServer("Can't create pipe");
    }
    ZeroMemory(&SInfo, sizeof(SInfo));
    SInfo.cb = sizeof(SInfo);
    ZeroMemory(&PI, sizeof(PI));
    if(CreateProcessW(L"process", 0, 0, 0, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, 
    &SInfo, &PI) == 0) {
        ShutdownServer("Can't Create Process");
        return 0;
    }
}

В CreateProcessW специально заменил первый аргумент ( а то ещё взломают ;) )


Ответы (1 шт):

Автор решения: Qzim 45

Проблема решена, я перезагрузил компьютер и всё заработало, но причина не ясна. Может баги Visual Studio? Отпишите пожалуйста если сталкивались с похожей проблемой.

→ Ссылка