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


структура 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 (терминал данных готов) включен.
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 Автоматически чередуйте пустые символы из полученных данных.
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