调用 ConnectNamedPipe 后 GetLastError 返回 ERROR_SUCCESS

发布于 2024-08-21 10:19:36 字数 325 浏览 10 评论 0原文

当我使用 OVERLAPPED 结构调用 ConnectNamedPipe 并随后检查 GetLastError 时,我经常看到 GetLastError 返回 ERROR_SUCCESS。我阅读文档的方式,这种事永远不应该发生。我的理解是,如果客户端已经连接,则应设置 ERROR_PIPE_CONNECTED,而不是 ERROR_SUCCESS。

还有其他人看过这个吗?操作系统是32位Windows 7。

When I call ConnectNamedPipe with an OVERLAPPED structure and check GetLastError afterwards, I often see GetLastError return ERROR_SUCCESS. The way I'm reading the documentation, that should never happen. My understanding is that if a client has already connected, ERROR_PIPE_CONNECTED should be set, not ERROR_SUCCESS.

Has anyone else seen this? The OS is 32-bit Windows 7.

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

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

发布评论

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

评论(2

挥剑断情 2024-08-28 10:19:36

这是 OVERLAPPED 的典型情况。它在连接之前告知参数是否正确(假设是异步套接字)。连接完成或失败后,GetOverlappedResult() 返回正确的状态。所以我想这是一个小文档错误。

That's typical for OVERLAPPED. It tells whether the parameters are okay before connecting, assuming an asynchronous socket. Once a connection completes or fails, then GetOverlappedResult() returns the proper status. So I guess this is a minor documentation error.

长伴 2024-08-28 10:19:36

尝试在 ConnectNamedPipe 之后立即调用 GetLastError()。
中间不要调用任何 API。

Try calling GetLastError() immediately after ConnectNamedPipe.
Don't call any API in between.

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