DCB

This structure defines the control setting for a serial communications device.

At a Glance

Header file: Winbase.h
Windows CE versions: 1.0 and later

Syntax

typedef struct _DCB {
DWORD
DCBlength;
DWORD
BaudRate;
DWORD
fBinary:1;
DWORD
fParity:1;
DWORD
fOutxCtsFlow:1;
DWORD
fOutxDsrFlow:1;
DWORD
fDtrControl:2;
DWORD
fDsrSensitivity:1;
DWORD
fTXContinueOnXoff:1;
DWORD
fOutX: 1;
DWORD
fInX: 1;
DWORD
fErrorChar:1;
DWORD
fNull:1;
DWORD
fRtsControl:2;
DWORD
fAbortOnError:1;
DWORD
fDummy2:17;
WORD
wReserved;
WORD
XonLim;
WORD
XoffLim;
BYTE
ByteSize;
BYTE
Parity;
BYTE
StopBits;
char
XonChar;
char
XoffChar;
char
ErrorChar;
char
EofChar;
char
EvtChar;
WORD
wReserved1;
} DCB;

Members

DCBlength

Specifies the DCB structure length, in bytes.

BaudRate

Specifies the baud rate at which the communication device operates. It is 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 if binary mode is enabled. The Win32 API does not support nonbinary mode transfers, so this member must be TRUE. Using FALSE will not work.

fParity

Specifies if parity checking is enabled. If this member is TRUE, parity checking is performed and errors are reported.

fOutxCtsFlow

Specifies if 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 if 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 Description
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 if 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 if 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 if 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 if 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 if 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 if 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 Description
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 if 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; set to zero.

XonLim

Specifies the minimum number of bytes accepted in the input buffer before the XON character is sent.

XoffLim

Specifies the maximum number of bytes accepted in the input buffer before the XOFF character is sent. The maximum number of bytes accepted 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. It is one of the following values:

Value Description
EVENPARITY Even
MARKPARITY Mark
NOPARITY No parity
ODDPARITY Odd
SPACEPARITY Space

StopBits

Specifies the number of stop bits to be used. It is one of the following values:

Value Description
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

For device driver developers: the COM_Open function in the sample serial port MDD driver does not support the fErrorChar, fNull, and fAbortOnChar members of the DCB structure. You are expected to add support for this functionality in your PDD layer, if appropriate for your serial port hardware.

The sample serial port MDD driver is found in Public\Common\Oak\Drivers\Serial.

See Also

ClearCommError, EscapeCommFunction, GetCommState, SetCommState