Поделиться через


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

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

Синтаксис

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

Параметры

[in] lpDef

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

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

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

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

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

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

[out] lpDCB

Указатель на структуру DCB , которая получает информацию.

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

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

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

Замечания

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

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

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

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

  • Для строки, которая не заканчивается x или p:
    • fInX, fOutX, fOutXDsrFlowи fOutXCtsFlow имеют значение false false
    • fDtrControl имеет значение DTR_CONTROL_ENABLE
    • fRtsControl имеет значение RTS_CONTROL_ENABLE
  • Для строки, заканчивающейся x:
    • fInX и fOutX имеют значение TRUE
    • fOutXDsrFlow и fOutXCtsFlow имеют значение false false
    • fDtrControl имеет значение DTR_CONTROL_ENABLE
    • fRtsControl имеет значение RTS_CONTROL_ENABLE
  • Для строки, заканчивающейся p:
    • fInX и fOutX имеют значение false false
    • fOutXDsrFlow и fOutXCtsFlow имеют значение TRUE
    • fDtrControl имеет значение DTR_CONTROL_HANDSHAKE
    • fRtsControl имеет значение RTS_CONTROL_HANDSHAKE

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP
минимальный поддерживаемый сервер Windows Server 2003
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

функций связи

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

DCB

SetCommState