COMMTIMEOUTS 结构 (winbase.h)
包含通信设备的超时参数。 参数确定设备上 ReadFile、 WriteFile、 ReadFileEx 和 WriteFileEx 操作的行为。
语法
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout;
DWORD ReadTotalTimeoutMultiplier;
DWORD ReadTotalTimeoutConstant;
DWORD WriteTotalTimeoutMultiplier;
DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;
成员
ReadIntervalTimeout
通信线路上下一个字节到达之前允许经过的最长时间(以毫秒为单位)。 如果任意两个字节的到达间隔超过此量,则 ReadFile 操作完成并返回任何缓冲的数据。 值为零表示不使用间隔超时。
MAXDWORD 值加上 ReadTotalTimeoutConstant 和 ReadTotalTimeoutMultiplier 成员的零值,指定读取操作将立即返回已接收的字节,即使未收到任何字节。
ReadTotalTimeoutMultiplier
用于计算读取操作的总超时周期的乘数(以毫秒为单位)。 对于每个读取操作,此值乘以要读取的请求字节数。
ReadTotalTimeoutConstant
一个常量,用于计算读取操作的总超时时间(以毫秒为单位)。 对于每个读取操作,此值将添加到 ReadTotalTimeoutMultiplier 成员的乘积和请求的字节数中。
ReadTotalTimeoutMultiplier 和 ReadTotalTimeoutConstant 成员的值为零表示总超时不用于读取操作。
WriteTotalTimeoutMultiplier
用于计算写入操作的总超时周期的乘数(以毫秒为单位)。 对于每个写入操作,此值乘以要写入的字节数。
WriteTotalTimeoutConstant
一个常量,用于计算写入操作的总超时时间(以毫秒为单位)。 对于每个写入操作,此值将添加到 WriteTotalTimeoutMultiplier 成员的乘积和要写入的字节数。
WriteTotalTimeoutMultiplier 和 WriteTotalTimeoutConstant 成员的值为零表示总超时不用于写入操作。
注解
如果应用程序将 ReadIntervalTimeout 和 ReadTotalTimeoutMultiplier 设置为 MAXDWORD 并将 ReadTotalTimeoutConstant 设置为大于零且小于 MAXDWORD 的值,则调用 ReadFile 函数时会发生以下情况之一:
- 如果输入缓冲区中有任何字节, ReadFile 将立即返回缓冲区中的字节。
- 如果输入缓冲区中没有字节, ReadFile 将等待字节到达,然后立即返回。
- 如果在 ReadTotalTimeoutConstant 指定的时间内没有字节到达, ReadFile 将超时。
要求
最低受支持的客户端 | Windows XP |
最低受支持的服务器 | Windows Server 2003 |
标头 | winbase.h (包括 Windows.h) |