Prev Next
The COMMTIMEOUTS structure is used in the SetCommTimeouts
and GetCommTimeouts functions to set
and query the time-out parameters for a communications device. The parameters
determine the behavior of ReadFile, WriteFile,
ReadFileEx, and WriteFileEx
operations on the device.
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
GetCommTimeouts, ReadFile,
ReadFileEx, SetCommTimeouts,
WriteFile, WriteFileEx