COMMTIMEOUTS
The COMMTIMEOUTS
structure is used in the SetCommTimeouts
typedef struct _COMMTIMEOUTS { //
ctmo
DWORD
ReadIntervalTimeout;
DWORD
ReadTotalTimeoutMultiplier;
DWORD
ReadTotalTimeoutConstant;
DWORD
WriteTotalTimeoutMultiplier;
DWORD
WriteTotalTimeoutConstant;
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
Members
ReadIntervalTimeout
Specifies the
maximum time, in milliseconds, allowed to elapse between the arrival of two
characters on the communications line. During a ReadFile operation, the
time period begins when the first character is received. If the interval
between the arrival of any two characters exceeds this amount, the ReadFile
operation is completed and any buffered data is returned. A value of zero
indicates that interval time-outs are not used.
A value of
MAXDWORD, combined with zero values for both the ReadTotalTimeoutConstant
and ReadTotalTimeoutMultiplier members, specifies that the read
operation is to return immediately with the characters that have already been
received, even if no characters have been received.
ReadTotalTimeoutMultiplier
Specifies the
multiplier, in milliseconds, used to calculate the total time-out period for
read operations. For each read operation, this value is multiplied by the
requested number of bytes to be read.
ReadTotalTimeoutConstant
Specifies the
constant, in milliseconds, used to calculate the total time-out period for read
operations. For each read operation, this value is added to the product of the ReadTotalTimeoutMultiplier
member and the requested number of bytes.
A value of zero
for both the ReadTotalTimeoutMultiplier and ReadTotalTimeoutConstant
members indicates that total time-outs are not used for read operations.
WriteTotalTimeoutMultiplier
Specifies the
multiplier, in milliseconds, used to calculate the total time-out period for
write operations. For each write operation, this value is multiplied by the
number of bytes to be written.
WriteTotalTimeoutConstant
Specifies the
constant, in milliseconds, used to calculate the total time-out period for
write operations. For each write operation, this value is added to the product
of the WriteTotalTimeoutMultiplier member and the number of bytes to be
written.
A value of
zero for both the WriteTotalTimeoutMultiplier and WriteTotalTimeoutConstant
members indicates that total time-outs are not used for write operations.
Remarks
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 characters in
the input buffer, ReadFile returns immediately with the characters in
the buffer.
If there are no characters in
the input buffer, ReadFile waits until a character arrives and then
returns immediately.
If no character arrives within
the time specified by ReadTotalTimeoutConstant, ReadFile times
out.
See Also