GetLastError在调用ConnectNamedPipe后返回ERROR_SUCCESS

时间:2010-02-12 04:54:27

标签: winapi pipe named-pipes

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

有没有人见过这个?操作系统是32位Windows 7。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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