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_CHARS 中 BreakChar 成员的说明。 |
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 成员定义的标志子集。 使用 STATUS_NOT_IMPLEMENTED 完成指定不受支持的标志的IOCTL_SERIAL_SET_HANDFLOW请求。
要求
要求 | 值 |
---|---|
Header | ntddser.h |