ReadFile在开始一个重叠操作时,会把OVERLAPPED结构中的Event对象重设未 non-signaled状态.
在读取的重叠操作时,ReadFile指定的读取字节数和实际要接受的字节数不要相差太大,如果指定的数太大,则操作"GetOverlappedResult(ghComm,&oRead,&dwByteRead,TRUE);"会等待较长时间.
ReadFile 的重叠操作,在两者情形下正常返回:超时和完成指定的读取操作.
超时返回的计算是根据COMMTIMEOUTS进行的:
Total_Timeout = (Multiplier * Number_Of_Bytes) + Constant.
另外:
有一点 WaitCommEvent will not post WM_COMMNOTIFY messages
博客介绍了ReadFile重叠操作的相关要点。开始重叠操作时会重设OVERLAPPED结构中Event对象状态;读取时指定字节数与实际接受字节数不宜相差过大,否则GetOverlappedResult操作等待时间长。重叠操作在超时和完成指定读取时正常返回,超时计算依据COMMTIMEOUTS。
8万+

被折叠的 条评论
为什么被折叠?



