COMMTIMEOUTS

【勇芳软件工作室】汉化HomePreviousNext

SetCommTimeoutsGetCommTimeouts功能中使用COMMTIMEOUTS结构来设置和查询通讯设备的超时参数。参数确定设备上的ReadFileWriteFileReadFileExWriteFileEx操作的行为。

typedef struct _COMMTIMEOUTS { //商标局

DWORD ReadIntervalTimeout;

DWORD ReadTotalTimeoutMultiplier;

DWORD ReadTotalTimeoutConstant;

DWORD WriteTotalTimeoutMultiplier;

DWORD WriteTotalTimeoutConstant;

} COMMTIMEOUTS,*LPCOMMTIMEOUTS;

会员

ReadIntervalTimeout

指定在通信线路上两个字符到达之间允许经过的最长时间(以毫秒为单位)。在ReadFile操作期间,时间段从接收到第一个字符开始。如果任意两个字符到达之间的间隔超过此量,则ReadFile操作完成,并返回任何缓冲数据。值为零表示不使用间隔超时。

MAXDWORD的值与ReadTotalTimeoutConstantReadTotalTimeoutMultiplier成员的零值组合指定即使没有接收到字符,读取操作将立即返回已接收到的字符。

ReadTotalTimeoutMultiplier

指定用于计算读取操作的总超时周期的乘数(以毫秒为单位)。对于每个读取操作,该值乘以要读取的所请求的字节数。

ReadTotalTimeoutConstant

指定用于计算读取操作的总超时周期的常数(以毫秒为单位)。对于每个读取操作,该值将添加到ReadTotalTimeoutMultiplier成员和请求的字节数的乘积中。

ReadTotalTimeoutMultiplierReadTotalTimeoutConstant成员的值为零表示总计超时不用于读取操作。

WriteTotalTimeoutMultiplier

指定用于计算写入操作的总超时周期的乘数(以毫秒为单位)。对于每个写入操作,该值乘以要写入的字节数。

WriteTotalTimeoutConstant

指定用于计算写入操作的总超时周期的常数(以毫秒为单位)。对于每个写入操作,该值被添加到WriteTotalTimeoutMultiplier成员的乘积和要写入的字节数。

WriteTotalTimeoutMultiplierWriteTotalTimeoutConstant成员的值为零表示总共超时不用于写入操作。

备注

如果应用程序将ReadIntervalTimeoutReadTotalTimeoutMultiplier设置为MAXDWORD,并将ReadTotalTimeoutConstant设置为大于零且小于MAXDWORD的值,则会在调用ReadFile函数时发生以下情况之一:

*如果输入缓冲区中有任何字符,ReadFile将立即返回缓冲区中的字符。

*如果输入缓冲区中没有字符,ReadFile等到字符到达,然后立即返回。

*如果ReadTotalTimeoutConstant指定的时间内没有字符到达,则ReadFile超时。

也可以看看

GetCommTimeouts, ReadFile, ReadFileEx, SetCommTimeouts, WriteFile, WriteFileEx