views:

27

answers:

1

How can I configure COMMTIMEOUTS to wait forever for at least one byte to be read?

A: 

From the Remarks sections of the COMMTIMEOUTS link you posted:

If an application sets ReadIntervalTimeout and ReadTotalTimeoutMultiplier to MAXDWORD and sets ReadTotalTimeoutConstant to a value greater than zero and less than MAXDWORD, one of the following occurs when the ReadFile function is called:

  • If there are any bytes in the input buffer, ReadFile returns immediately with the bytes in the buffer.
  • If there are no bytes in the input buffer, ReadFile waits until a byte arrives and then returns immediately.
  • If no bytes arrive within the time specified by ReadTotalTimeoutConstant, ReadFile times out.
Praetorian
This answer is not valid because the operation will eventually time out even if no bytes were read.
Gili