Функция BuildCommDCBA (winbase.h)

Заполняет указанную структуру DCB значениями, указанными в строке управления устройством. Строка управления устройством использует синтаксис команды mode .

Синтаксис

BOOL BuildCommDCBA(
  [in]  LPCSTR lpDef,
  [out] LPDCB  lpDCB
);

Параметры

[in] lpDef

Сведения об управлении устройством. Функция принимает эту строку, анализирует ее, а затем задает соответствующие значения в структуре DCB , на которую указывает lpDCB.

Строка должна иметь ту же форму, что и аргументы командной строки команды mode :

COMx[:][baud=b][parity=p][data=d][stop=s][to={on|off}][xon={on|off}][odsr={on|off}][octs={on|off}][dtr={on|off|hs}][rts={on|off|tg}][idsr={on|off}]

Имя устройства является необязательным, но в нем должно быть указано допустимое устройство, если оно используется.

Например, следующая строка указывает скорость передачи данных 1200, без четности, 8 битов данных и 1 стоп-бит:

baud=1200 parity=N data=8 stop=1

[out] lpDCB

Указатель на структуру DCB , которая получает сведения.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Функция BuildCommDCB корректирует только те элементы структуры DCB , на которые конкретно влияет параметр lpDef , за следующими исключениями:

  • Если указанная скорость передачи данных составляет 110, функция устанавливает для стоп-битов значение 2, чтобы оставаться совместимым с командой режима системы.
  • По умолчанию BuildCommDCB отключает XON/XOFF и управление потоком оборудования. Чтобы включить управление потоком, необходимо явно задать соответствующие элементы структуры DCB .
Функция BuildCommDCB заполняет только элементы структуры DCB . Чтобы применить эти параметры к последовательному порту, используйте функцию SetCommState .

Существуют более старые и новые формы синтаксиса режима . Функция BuildCommDCB поддерживает обе формы. Однако вы не можете смешивать эти две формы.

Более новая форма синтаксиса режима позволяет явно задавать значения элементов управления потоком структуры DCB . Если используется более старая форма синтаксиса режима , функция BuildCommDCB задает элементы управления потоком структуры DCB следующим образом:

  • Для строки, которая не заканчивается на x или p:
    • fInX, fOutX, fOutXDsrFlow и fOutXCtsFlow имеют значение FALSE.
    • FDtrControl имеет значение DTR_CONTROL_ENABLE
    • FRtsControl имеет значение RTS_CONTROL_ENABLE
  • Для строки, заканчивающейся на x:
    • Значения fInX и fOutX имеют значение TRUE.
    • FOutXDsrFlow и fOutXCtsFlow имеют значение FALSE.
    • FDtrControl имеет значение DTR_CONTROL_ENABLE
    • FRtsControl имеет значение RTS_CONTROL_ENABLE
  • Для строки, заканчивающейся на p:
    • Значения fInX и fOutX имеют значение FALSE.
    • FOutXDsrFlow и fOutXCtsFlow имеют значение TRUE.
    • FDtrControl имеет значение DTR_CONTROL_HANDSHAKE
    • FRtsControl имеет значение RTS_CONTROL_HANDSHAKE

Примечание

Заголовок winbase.h определяет BuildCommDCB в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP
Минимальная версия сервера Windows Server 2003
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Функции связи

Ресурсы связи

DCB

SetCommState