读写操作

Windows 支持对串行通信资源执行同步和异步(重叠)文件 I/O 操作。 重叠的操作使调用线程能够在后台执行操作时执行其他任务。 线程使用 ReadFileReadFileEx 函数从通信资源读取,而 WriteFileWriteFileEx 函数用于写入通信资源。 ReadFileWriteFile 可以同步或异步执行。 ReadFileExWriteFileEx 只能异步执行。

这些读取和写入函数的行为影响因素包括,函数是否作为重叠操作执行、超时参数是否与句柄关联以及流控制参数是否与句柄关联。

线程还可以使用 TransmitCommChar 函数写入通信资源,该函数在输出缓冲区中的任何挂起数据之前传输指定字符。 此函数可用于将高优先级信号字符传输到接收系统。 高优先级字符的传输仍受流控制和写入超时的约束,并且操作是同步执行的。

线程可以使用 PurgeComm 函数放弃设备输出或输入缓冲区中的所有字符。 PurgeComm 还可以终止挂起的读取或写入操作,即使操作尚未完成也是如此。 如果线程使用 PurgeComm 刷新输出缓冲区,则不会传输已删除的字符。 若要在确保传输内容的同时清空输出缓冲区,线程可以调用 FlushFileBuffers 函数(同步操作)。 但请注意,FlushFileBuffers 受流控制,但不会写入超时,并且直到传输所有挂起的写入操作才会返回。