草庐IT

WriteFileEx

全部标签

windows - 如何判断 ReadFileEx() 重叠 I/O 何时完成?

HasOverlappedIoCompleted()不适用于以ReadFileEx()开头的异步I/O和WriteFileEx().底部的代码片段演示了这一点。在此示例中,ReadFileEx()从没有输入的管道中读取数据,因此读取不会完成。但是HasOverlappedIoCompleted()返回TRUE。如果我将调用更改为重叠的ReadFile(),则HasOverlappedIoCompleted()会按预期返回FALSE。我的问题是:如何在不依赖回调本身的情况下,找出带有回调的重叠I/O请求是否已完成?在我的应用程序中,APC可能已经排队,但不一定已经运行,因为应用程序可能尚

c++ - WriteFileEx 完成例程成功,但传输的字节数不正确

我使用IO完成例程通过管道在不同机器上的两个进程之间进行通信。有时,当调用WriteFileEx的完成例程时,完成例程参数dwErrorCode为0(即无错误),GetOverlappedResult返回true(即无错误),但dwNumberOfBytesTransfered与WriteFileEx调用中的nNumberOfBytesToWrite不匹配。然而,我只在管道的客户端看到了这一点。如果传输的字节数与请求传输的字节数不匹配,如何才能视为成功?客户端的管道句柄是这样创建的:mHPipe=CreateFile(pipeName,//pipenameGENERIC_READ|//