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


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

Преобразует строку определения устройства в соответствующие коды блоков управления устройствами и помещает их в блок управления устройством. Функция также может настроить значения времени ожидания, включая возможность отсутствия времени ожидания для устройства; Поведение функции в этом отношении зависит от содержимого строки определения устройства.

Синтаксис

BOOL BuildCommDCBAndTimeoutsA(
  [in]  LPCSTR         lpDef,
  [out] LPDCB          lpDCB,
  [out] LPCOMMTIMEOUTS lpCommTimeouts
);

Параметры

[in] lpDef

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

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

COMx[:][baud={111101515030300606001212002424004848009696001919200}][четность={neom}][data={5678}][stop={11.52}][to={onoff}][xon={onoff}][odsr={onoff}][octs={onoff}][dtr={наoffhs}][rts={onoffhstg}][idsr={onoff}]

Подстрока "baud" может быть любой из перечисленных значений, которые находятся в парах. Значения с двумя цифрами — это первые две цифры связанных значений, которые они представляют. Например, 11 представляет 110 baud, 19 представляет 19 200 baud.

Подстрока "четности" указывает, как используется бит четности для обнаружения ошибок передачи. Значения представляют "none", "даже", "нечетный",
"Mark" и "space".

Дополнительные сведения см. в справочнике по команде режима в TechNet.

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

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

[out] lpDCB

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

[out] lpCommTimeouts

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

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

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

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

Замечания

Функция buildCommDCBAndTimeouts изменяет поведение времени ожидания на основе наличия или отсутствия подстроки to={on|off}" в lpDef:

  • Если эта строка содержит подстроку "to=on", функция задает WriteTotalTimeoutConstant член структуры COMMTIMEOUTS значение 60000, а остальные члены — 0.
  • Если эта строка содержит подстроку to=off, функция задает элементы COMMTIMEOUTS значение 0.
  • Если эта строка не указывает подстроку to={on|off}, функция игнорирует структуру COMMTIMEOUTS в lpCommTimeouts.
Дополнительные сведения см. в заметках для функции BuildCommDCB .

Заметка

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

Требования

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

См. также

BuildCommDCB

COMMTIMEOUTS

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

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

DCB

GetCommTimeouts

SetCommTimeouts