在某些情况下,即使未发生超时,读取或写入作的完成次数也少于请求的字符数。 下面是一些示例:
- 某些驱动程序支持使用特殊字符,这些字符会立即完成读取作,其中仅包含接收到这些字符时读取到点的字符。
- 可以调用 PurgeComm 函数以过早终止挂起的读取或写入作。 此函数还可以删除输出或输入缓冲区的内容,或者同时删除这两者的内容。
- 如果在读取或写入作期间发生通信错误,则会终止对通信资源的所有 I/O作。 中断条件、奇偶校验错误或帧错误是此类错误的示例。 发生错误时,进程必须调用 ClearCommError 函数才能清除错误标志,然后才能开始其他 I/O作。 ClearCommError 报告发生的特定错误和设备当前状态。