После создания процесса и его немедленного прекращения необходимо CloseHandle
дескриптор потока, возвращенный в структуре PROCESS_INFORMATION
?
STARTUPINFO si;
GetStartupInfo(&si);
PROCESS_INFORMATION pi;
CreateProcess(0, cmdLine, 0, 0, FALSE, CREATE_SUSPENDED, 0, 0, &si, &pi);
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread); // Is this necessary?