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_CHARS中的 ErrorChar 成员的说明。
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 成员定义的标志子集。 指定不受支持的标志的 IOCTL_SERIAL_SET_HANDFLOW 请求已完成STATUS_NOT_IMPLEMENTED。

要求

要求 价值
标头 ntddser.h

另请参阅

IOCTL_SERIAL_GET_HANDFLOW

IOCTL_SERIAL_SET_HANDFLOW