COMMTIMEOUTS 结构 (winbase.h)

包含通信设备的超时参数。 参数确定设备上 ReadFileWriteFileReadFileExWriteFileEx 操作的行为。

语法

typedef struct _COMMTIMEOUTS {
  DWORD ReadIntervalTimeout;
  DWORD ReadTotalTimeoutMultiplier;
  DWORD ReadTotalTimeoutConstant;
  DWORD WriteTotalTimeoutMultiplier;
  DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;

成员

ReadIntervalTimeout

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

MAXDWORD 值加上 ReadTotalTimeoutConstantReadTotalTimeoutMultiplier 成员的零值,指定读取操作将立即返回已接收的字节,即使未收到任何字节。

ReadTotalTimeoutMultiplier

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

ReadTotalTimeoutConstant

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

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

WriteTotalTimeoutMultiplier

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

WriteTotalTimeoutConstant

一个常量,用于计算写入操作的总超时时间(以毫秒为单位)。 对于每个写入操作,此值将添加到 WriteTotalTimeoutMultiplier 成员的乘积和要写入的字节数。

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

注解

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

  • 如果输入缓冲区中有任何字节, ReadFile 将立即返回缓冲区中的字节。
  • 如果输入缓冲区中没有字节, ReadFile 将等待字节到达,然后立即返回。
  • 如果在 ReadTotalTimeoutConstant 指定的时间内没有字节到达, ReadFile 将超时。

要求

   
最低受支持的客户端 Windows XP
最低受支持的服务器 Windows Server 2003
标头 winbase.h (包括 Windows.h)

另请参阅

GetCommTimeouts

ReadFile

ReadFileEx

SetCommTimeouts

WriteFile

WriteFileEx