DCB
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 |
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
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 |
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