SERIAL_HANDFLOW 结构 (ntddser.h)

SERIAL_HANDFLOW结构指定串行端口的握手和流控制设置。

语法

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

成员

ControlHandShake

一个位掩码,指定串行端口用于流控制的控制线。 此成员设置为零或设置为按位 OR 或以下一个或多个标志。

说明
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

指定流控制行为的位掩码。 此成员设置为零或设置为按位 OR 或以下一个或多个标志。

说明
SERIAL_AUTO_TRANSMIT 使用 XON/XOFF 对传输的数据进行流控制。
SERIAL_AUTO_RECEIVE 使用 XON/XOFF 对接收的数据进行流控制。
SERIAL_ERROR_CHAR 发生错误时,将错误字符插入到接收的数据中。 有关详细信息,请参阅 SERIAL_CHARSErrorChar 成员的说明。
SERIAL_NULL_STRIPPING 自动从接收的数据中去除 null 字符。
SERIAL_BREAK_CHAR 发生中断时,将分隔符插入到接收的数据中。 有关详细信息,请参阅 SERIAL_CHARSBreakChar 成员的说明。
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_HANDFLOWIOCTL_SERIAL_SET_HANDFLOW 请求使用。

发送 XOFF (传输) 字符后,串行端口将立即停止传输,不再发送任何字符。 此行为支持串行端口,这些端口将 XOFF 后面的任何字符解释为隐式 XON () 上的传输。

SerCx2 和 SerCx 仅支持为 ControlHandShakeFlowControl 成员定义的标志子集。 使用 STATUS_NOT_IMPLEMENTED 完成指定不受支持的标志的IOCTL_SERIAL_SET_HANDFLOW请求。

要求

要求
Header ntddser.h

另请参阅

IOCTL_SERIAL_GET_HANDFLOW

IOCTL_SERIAL_SET_HANDFLOW