PurgeComm功能可以丢弃指定通信资源的输出或输入缓冲区中的所有字符。它还可以终止对资源的等待读取或写入操作。
BOOL PurgeComm(
HANDLE 【HFILE】, | //处理通讯资源 |
DWORD 【dwFlags中】 | //要执行的动作 |
); |
参数
【HFILE】
标识通信资源。CreateFile函数返回此句柄。
【dwFlags中】
指定要执行的操作。此参数可以是以下值的组合:
值 | 含义 |
PURGE_TXABORT | 终止所有未完成的写操作并立即返回,即使写操作尚未完成。 |
PURGE_RXABORT | 终止所有未完成的读取操作并立即返回,即使读操作尚未完成。 |
PURGE_TXCLEAR | 清除输出缓冲区(如果设备驱动程序有)。 |
PURGE_RXCLEAR | 清除输入缓冲区(如果设备驱动程序有一个)。 |
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
如果线程使用PurgeComm刷新输出缓冲区,则不会发送已删除的字符。要确保发送内容时清空输出缓冲区,请调用FlushFileBuffers功能(同步操作)。但是请注意,FlushFileBuffers需要进行流量控制,但不会写入超时,并且在所有挂起的写入操作都被传送之前不会返回。
也可以看看