CreateProcess 返回非 0,但 GetExitCodeProcess() 返回 128

发布于 2024-12-03 09:44:20 字数 286 浏览 0 评论 0原文

我正在创建一个应用程序,它将使用 CreateProcess() 启动另一个进程。在父进程中,我将使用 GetExitCodeProcess() 来检查进程是否处于活动状态。

这里 CreateProcess() 成功(返回一个非负值),但 GetExitCodeProcess() 返回 128(没有子进程等待)。我没有看到子进程启动的任何痕迹(通常是一些调试)。它间歇性地发生。

知道子进程到底发生了什么吗?我们从哪里获得更多信息(在系统/应用程序事件日志中?)。

请指导我。

谢谢, 娜迦

I am creating an application that will start another process using CreateProcess(). And in the parent process I will use GetExitCodeProcess() to check whether the process active or not.

Here CreateProcess() is successful (returned a non negative value) but GetExitCodeProcess() returns 128 (There are no child processes to wait for). I am not seeing any trace of the child process started(usually some debugs). It happens intermittently.

Any idea what really happened to the child process?. Where we get more information (in system/application event logs?).

Please guide me.

Thanks,
Naga

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥抱我好吗 2024-12-10 09:44:20

感谢您的评论。

我发现以下 MSDN 文章给出了相同的症状和问题的解决方案。


当使用 CreateProcess() 或 CreateProcessAsUser() API 的服务启动时,Cmd.exe、Perl.exe 或其他控制台模式应用程序可能无法正确初始化并提前终止。调用进程无法知道启动的控制台模式应用程序已提前终止。

在某些情况下,对失败的进程调用 GetExitCode() 会指示以下退出代码:
128L ERROR_WAIT_NO_CHILDREN - 没有要等待的子进程。


http://support.microsoft.com/kb/156484
http://support.microsoft.com/kb/142676/EN-US

http:// support.microsoft.com/kb/175687/EN-US

谢谢,
娜迦

Thanks for your comments.

I have found the following MSDN articles that gives the same symptoms and resolution for the problem.


Cmd.exe, Perl.exe, or other console-mode applications may fail to initialize properly and terminate prematurely when launched by a service using the CreateProcess() or CreateProcessAsUser() APIs. The calling process has no way of knowing that the launched console-mode application has terminated prematurely.

In some instances, calling GetExitCode() against the failed process indicates the following exit code:
128L ERROR_WAIT_NO_CHILDREN - There are no child processes to wait for.


http://support.microsoft.com/kb/156484
http://support.microsoft.com/kb/142676/EN-US

http://support.microsoft.com/kb/175687/EN-US

Thanks,
Naga

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文