Prev Next
The DCB structure defines the control setting for a serial
communications device.
typedef struct _DCB { // dcb
DWORD DCBlength; // sizeof(DCB)
DWORD BaudRate; // current baud rate
DWORD fBinary: 1; // binary mode, no EOF check
DWORD fParity: 1; // enable parity checking
DWORD fOutxCtsFlow:1; // CTS output flow control
DWORD fOutxDsrFlow:1; // DSR output flow control
DWORD fDtrControl:2; // DTR flow control type
DWORD fDsrSensitivity:1; // DSR sensitivity
DWORD fTXContinueOnXoff:1; // XOFF continues Tx
DWORD fOutX: 1; // XON/XOFF out flow control
DWORD fInX: 1; // XON/XOFF in flow control
DWORD fErrorChar: 1; // enable error replacement
DWORD fNull: 1; // enable null stripping
DWORD fRtsControl:2; // RTS flow control
DWORD fAbortOnError:1; // abort reads/writes on error
DWORD fDummy2:17; // reserved
WORD wReserved; // not currently used
WORD XonLim; // transmit XON threshold
WORD XoffLim; // transmit XOFF threshold
BYTE ByteSize; // number of bits/byte, 4-8
BYTE Parity; // 0-4=no,odd,even,mark,space
BYTE StopBits; // 0,1,2 = 1, 1.5, 2
char XonChar; // Tx and Rx XON character
char XoffChar; // Tx and Rx XOFF character
char ErrorChar; // error replacement character
char EofChar; // end of input character
char EvtChar; // received event character
WORD wReserved1; // reserved; do not use
} DCB;
Members
-
DCBlength
-
Specifies the length, in bytes, of the DCB structure.
-
BaudRate
-
Specifies the baud rate at which the communications device operates. This
member can be an actual baud rate value, or one of the following baud rate
indexes:
CBR_110
|
CBR_19200
|
CBR_300
|
CBR_38400
|
CBR_600
|
CBR_56000
|
CBR_1200
|
CBR_57600
|
CBR_2400
|
CBR_115200
|
CBR_4800
|
CBR_128000
|
CBR_9600
|
CBR_256000
|
CBR_14400
|
|
-
fBinary
-
Specifies whether binary mode is enabled. The Win32 API does not support
nonbinary mode transfers, so this member should be TRUE. Trying to use FALSE
will not work.
Under Windows 3.1, if this member is FALSE, nonbinary mode is enabled, and the
character specified by the EofChar member is recognized on input and
remembered as the end of data.
-
fParity
-
Specifies whether parity checking is enabled. If this member is TRUE, parity
checking is performed and errors are reported.
-
fOutxCtsFlow
-
Specifies whether the CTS (clear-to-send) signal is monitored for output flow
control. If this member is TRUE and CTS is turned off, output is suspended
until CTS is sent again.
-
fOutxDsrFlow
-
Specifies whether the DSR (data-set-ready) signal is monitored for output flow
control. If this member is TRUE and DSR is turned off, output is suspended
until DSR is sent again.
-
fDtrControl
-
Specifies the DTR (data-terminal-ready) flow control. This member can be one
of the following values:
Value
|
Meaning
|
DTR_CONTROL_DISABLE
|
Disables the DTR line when the device is opened and leaves it disabled.
|
DTR_CONTROL_ENABLE
|
Enables the DTR line when the device is opened and leaves it on.
|
DTR_CONTROL_HANDSHAKE
|
Enables DTR handshaking. If handshaking is enabled, it is an error for the
application to adjust the line by using the EscapeCommFunction
function.
|
-
fDsrSensitivity
-
Specifies whether the communications driver is sensitive to the state of the
DSR signal. If this member is TRUE, the driver ignores any bytes received,
unless the DSR modem input line is high.
-
fTXContinueOnXoff
-
Specifies whether transmission stops when the input buffer is full and the
driver has transmitted the XoffChar character. If this member is TRUE,
transmission continues after the input buffer has come within XoffLim
bytes of being full and the driver has transmitted the XoffChar
character to stop receiving bytes. If this member is FALSE, transmission does
not continue until the input buffer is within XonLim bytes of being
empty and the driver has transmitted the XonChar character to resume
reception.
-
fOutX
-
Specifies whether XON/XOFF flow control is used during transmission. If this
member is TRUE, transmission stops when the XoffChar character is
received and starts again when the XonChar character is received.
-
fInX
-
Specifies whether XON/XOFF flow control is used during reception. If this
member is TRUE, the XoffChar character is sent when the input buffer
comes within XoffLim bytes of being full, and the XonChar
character is sent when the input buffer comes within XonLim bytes of
being empty.
-
fErrorChar
-
Specifies whether bytes received with parity errors are replaced with the
character specified by the ErrorChar member. If this member is TRUE and
the fParity member is TRUE, replacement occurs.
-
fNull
-
Specifies whether null bytes are discarded. If this member is TRUE, null bytes
are discarded when received.
-
fRtsControl
-
Specifies the RTS (request-to-send) flow control. If this value is zero, the
default is RTS_CONTROL_HANDSHAKE. This member can be one of the following
values:
Value
|
Meaning
|
RTS_CONTROL_DISABLE
|
Disables the RTS line when the device is opened and leaves it disabled.
|
RTS_CONTROL_ENABLE
|
Enables the RTS line when the device is opened and leaves it on.
|
RTS_CONTROL_HANDSHAKE
|
Enables RTS handshaking. The driver raises the RTS line when the “type-ahead”
(input) buffer is less than one-half full and lowers the RTS line when the
buffer is more than three-quarters full. If handshaking is enabled, it is an
error for the application to adjust the line by using the EscapeCommFunction
function.
|
RTS_CONTROL_TOGGLE
|
Specifies that the RTS line will be high if bytes are available for
transmission. After all buffered bytes have been sent, the RTS line will be
low.
|
-
fAbortOnError
-
Specifies whether read and write operations are terminated if an error occurs.
If this member is TRUE, the driver terminates all read and write operations
with an error status if an error occurs. The driver will not accept any
further communications operations until the application has acknowledged the
error by calling the ClearCommError
function.
-
fDummy2
-
Reserved; do not use.
-
wReserved
-
Not used; must be set to zero.
-
XonLim
-
Specifies the minimum number of bytes allowed in the input buffer before the
XON character is sent.
-
XoffLim
-
Specifies the maximum number of bytes allowed in the input buffer before the
XOFF character is sent. The maximum number of bytes allowed is calculated by
subtracting this value from the size, in bytes, of the input buffer.
-
ByteSize
-
Specifies the number of bits in the bytes transmitted and received.
-
Parity
-
Specifies the parity scheme to be used. This member can be one of the
following values:
Value
|
Meaning
|
EVENPARITY
|
Even
|
MARKPARITY
|
Mark
|
NOPARITY
|
No parity
|
ODDPARITY
|
Odd
|
SPACEPARITY
|
Space
|
-
StopBits
-
Specifies the number of stop bits to be used. This member can be one of the
following values:
Value
|
Meaning
|
ONESTOPBIT
|
1 stop bit
|
ONE5STOPBITS
|
1.5 stop bits
|
TWOSTOPBITS
|
2 stop bits
|
-
XonChar
-
Specifies the value of the XON character for both transmission and reception.
-
XoffChar
-
Specifies the value of the XOFF character for both transmission and reception.
-
ErrorChar
-
Specifies the value of the character used to replace bytes received with a
parity error.
-
EofChar
-
Specifies the value of the character used to signal the end of data.
-
EvtChar
-
Specifies the value of the character used to signal an event.
-
wReserved1
-
Reserved; do not use.
Remarks
When a DCB structure is used to configure the 8250, the following
restrictions apply to the values specified for the ByteSize and StopBits
members:
-
The number of data bits must be 5 to 8 bits.
-
The use of 5 data bits with 2 stop bits is an invalid combination, as is 6, 7,
or 8 data bits with 1.5 stop bits.
See Also
BuildCommDCB, ClearCommError,
EscapeCommFunction, GetCommState,
SetCommState