Вот она какая большая и длинная:
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;
DCBlength - длина структуры. Она необходима, так как мы передаем эту структуру в разные функции, кроме того можно контролировать ее корректность. Длина в байтах.
BaudRate - это поле отражает скорость передачи данных. Поле числовое. Скорости передачи могут быть разные. Можно указывать просто число. Но лучше использовать константу. Вот они:
CBR_110 CBR_300 CBR_600 CBR_1200 CBR_2400 CBR_19200 CBR_4800 CBR_9600 CBR_38400 CBR_56000 CBR_57600 CBR_14400 CBR_128000 CBR_115200 CBR_256000
FBinary - Режим двоичного обмена. Win32 не поддерживает недвоичный режим, поэтому данное поле всегда должно быть равно TRUE.
FParity - Режим проверки четности. Если указать TRUE, то четность будет проверяться.
FOutxCtsFlow - Режим слежения за сигналом CTS. Если это поле равно TRUE и сигнал CTS сброшен, передача данных приостанавливается до установки сигнала CTS. Используется для того, чтобы посылая данные можно было определить успевают ли их принимать.
FOutxDsrFlow - Включает режим слежения за сигналом DSR. Если это поле равно TRUE, то передача будет происходить только при наличии сигнала DSR:
FDtrControl - Режимы обмена DTR бывают следующие:
DTR_CONTROL_DISABLE Запрещает использование линии DTR DTR_CONTROL_ENABLE Разрешает использование линии DTR DTR_CONTROL_HANDSHAKE Включает специальный механизм восстановления связи, который называется рукопожатие.
FDsrSensitivity - устанавливает влияние линии DSR. Если TRUE, то данные принимаются, если есть DSR.
FTXContinueOnXoff - Определяет реакцию на переполнение приемного буфера. При поле TRUE передача продолжается даже если буфер близок к переполнению и драйвер передал сигнал о приостановлении потока данных. В противном случае передача остановится пока в буфере не будет достаточно места и драйвер не передаст сигнал о том, что принимать можно.
FOutX - Реакция на переполнения буфера (XON/XOFF) при передаче. Есть следующие сигналы:
XoffChar приостановить поток XonChar возобновить поток. Если значение TRUE, то эти сигналы будут учтены.
fInX - Реакция на переполнения буфера (XON/XOFF) при приеме. Если TRUE, то мы будет принимать сигналы о том, когда в буфере мало места и когда достаточно.
FErrorChar - Устанавливает необходимость замены символов с ошибкой четности. Если TRUE, то будет произведена замена.
FNull - Что делать с нулевым байтом. Когда равна TRUE нулевой байт отбрасывается.
FRtsControl - Устанавливает режим управления потоком для сигнала RTS.
RTS_CONTROL_DISABLE Запрещает использование линии RTS RTS_CONTROL_ENABLE Разрешает использование линии RTS RTS_CONTROL_HANDSHAKE Устанавливается сигнал RTS когда приемный буфер заполнен менее, чем на половину, и сбрасывает, когда буфер заполняется более чем на три четверти. RTS_CONTROL_TOGGLE Задает, что сигнал RTS установлен, когда есть данные для передачи, иначе сбрасывается.
FAbortOnError - Реакция на ошибки. Если это поле равно TRUE, драйвер прекращает все операции чтения/записи для порта при возникновении ошибки.
fDummy2 - Не используется.
wReserved - Не используется.
XonLim - Задает минимальное число символов в приемном буфере перед посылкой символа XON.
XoffLim - Определяет максимальное количество байт в приемном буфере перед посылкой символа XOFF. Максимально допустимое количество байт в буфере вычисляется вычитанием данного значения из размера приемного буфера в байтах.
ByteSize - Число бит в передаваемом байте.
Parity - Схема контроля четности:
EVENPARITY Дополнение до четности MARKPARITY Бит четности всегда 1 NOPARITY Бит четности отсутствует ODDPARITY Дополнение до нечетности SPACEPARITY Бит четности всегда 0
StopBits - Количество стоповых бит.
ONESTOPBIT Один стоповый бит ONE5STOPBIT Полтора стоповых бита TWOSTOPBIT Два стоповых бита
XonChar - Задает символ XON используемый как для приема, так и для передачи.
XoffChar - Задает символ XOFF используемый как для приема, так и для передачи.
ErrorChar - Задает символ, использующийся для замены символов с ошибочной четностью.
EofChar - Задает символ, использующийся для сигнализации о конце данных.
EvtChar - Задает символ, использующийся для сигнализации о событии.
wReserved1 - Зарезервировано и не используется.
Часть этой структуры представлено в окне настроке портов.