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


структура SERIAL_HANDFLOW (ntddser.h)

Структура SERIAL_HANDFLOW задает параметры подтверждения и управления потоком для последовательного порта.

Синтаксис

typedef struct _SERIAL_HANDFLOW {
  ULONG ControlHandShake;
  ULONG FlowReplace;
  LONG  XonLimit;
  LONG  XoffLimit;
} SERIAL_HANDFLOW, *PSERIAL_HANDFLOW;

Члены

ControlHandShake

Битовая маска, указывающая управляющие линии, которые последовательный порт использует для управления потоком. Для этого элемента задано значение ноль или побитовое или одно или несколько следующих флагов.

Значение Описание
SERIAL_DTR_CONTROL DTR (data terminal ready) включен.
SERIAL_DTR_HANDSHAKE DTR используется для управления входным потоком.
SERIAL_CTS_HANDSHAKE ДЛЯ управления потоком вывода используется CTS (очистить для отправки).
SERIAL_DSR_HANDSHAKE DSR (набор данных готов) используется для управления потоком вывода.
SERIAL_DCD_HANDSHAKE DCD (обнаружение носителя данных) используется для управления потоком вывода.
SERIAL_DSR_SENSITIVITY Игнорируйте символы, поступающие на последовательный порт, если строка DSR неактивна.
SERIAL_ERROR_ABORT Прерывание операции передачи или получения при возникновении ошибки.
 

SerCx2 поддерживает флаг SERIAL_CTS_HANDSHAKE и может не поддерживать другие шесть флагов, определенных для этого элемента, в зависимости от драйвера последовательного контроллера и возможностей оборудования последовательного контроллера. SerCx поддерживает только первые четыре флага в предыдущей таблице. Serial.sys поддерживает все флаги из предыдущей таблицы.

FlowReplace

Битовая маска, задающая поведение управления потоком. Для этого элемента задано значение ноль или побитовое или одно или несколько следующих флагов.

Значение Описание
SERIAL_AUTO_TRANSMIT Используйте XON/XOFF для управления потоком передаваемых данных.
SERIAL_AUTO_RECEIVE Используйте XON/XOFF для управления потоком полученных данных.
SERIAL_ERROR_CHAR Вставьте символ ошибки в полученные данные при возникновении ошибки. Дополнительные сведения см. в описании элемента ErrorChar в SERIAL_CHARS.
SERIAL_NULL_STRIPPING Автоматическое удаление символов NULL из полученных данных.
SERIAL_BREAK_CHAR Вставьте символ разрыва в полученные данные при возникновении прерывания. Дополнительные сведения см. в описании элемента BreakChar в SERIAL_CHARS.
SERIAL_RTS_CONTROL RtS (запрос на отправку) включен.
SERIAL_RTS_HANDSHAKE RTS используется для управления потоком вывода.
SERIAL_XOFF_CONTINUE Продолжить передачу после отправки XOFF на устройство на другом конце строки.
 

SerCx2 поддерживает флаги SERIAL_RTS_CONTROL и SERIAL_RTS_HANDSHAKE, но обычно не поддерживает другие шесть флагов, определенных для этого элемента, в зависимости от драйвера последовательного контроллера и возможностей оборудования последовательного контроллера. SerCx поддерживает только флаги SERIAL_RTS_CONTROL и SERIAL_RTS_HANDSHAKE. Serial.sys поддерживает все флаги из предыдущей таблицы.

XonLimit

Ограничение XON. Когда количество символов во внутреннем буфере приема падает ниже предела XON, драйвер последовательного контроллера использует сигналы управления потоком, чтобы сообщить отправителю о возобновлении отправки символов.

XoffLimit

Ограничение XOFF. Когда количество символов во внутреннем буфере приема достигает предела XOFF, драйвер последовательного контроллера использует сигналы управления потоком, чтобы сообщить отправителю прекратить отправку символов.

Комментарии

Эта структура используется запросами IOCTL_SERIAL_GET_HANDFLOW и IOCTL_SERIAL_SET_HANDFLOW .

После отправки символа XOFF (передачи выключения) последовательный порт немедленно прекращает передачу без отправки дополнительных символов. Это поведение поддерживает последовательные порты, которые интерпретируют любой символ, следующий за XOFF, как подразумеваемый XON (передается в).

SerCx2 и SerCx поддерживают только подмножества флагов, определенных для элементов ControlHandShake и FlowControl . Запрос IOCTL_SERIAL_SET_HANDFLOW , указывающий неподдерживаемый флаг, завершается STATUS_NOT_IMPLEMENTED.

Требования

Требование Значение
Заголовок ntddser.h

См. также раздел

IOCTL_SERIAL_GET_HANDFLOW

IOCTL_SERIAL_SET_HANDFLOW