gpt4 book ai didi

c++ - 无法在 vista 下重新创建命名管道

转载 作者:行者123 更新时间:2023-11-28 08:31:15 24 4
gpt4 key购买 nike

在我的应用程序中,我有应用程序和为应用程序做事的服务。他们通过命名管道进行通信。现在我可以启动该应用程序,它会启动服务并进行连接,效果很好。

当应用程序下载更新时,它会自行重启(以卸载使用中的模块)终止服务,然后再次启动服务以安装更新。这在 Windows XP 和 7 上工作正常,但 Vista 在尝试重新创建管道时不断返回访问被拒绝。

我创建了带有标志 FILE_FLAG_FIRST_PIPE_INSTANCE 的管道,以便只有一个管道。我使用 CreateProcess 重新启动应用程序,新实例等待旧实例停止。

如果我完全杀死应用程序并重新启动它,它可以安装更新并正常启动。

这让我发疯,有什么想法吗?

最佳答案

您将哪种安全属性传递给打开管道句柄的 CreateFile 调用?调用 CreateProcess 时是否允许继承句柄?

关于c++ - 无法在 vista 下重新创建命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1934863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com