SERIAL_STATUS 结构 (ntddser.h)

SERIAL_STATUS 结构包含有关串行端口的状态信息。

语法

typedef struct _SERIAL_STATUS {
  ULONG   Errors;
  ULONG   HoldReasons;
  ULONG   AmountInInQueue;
  ULONG   AmountInOutQueue;
  BOOLEAN EofReceived;
  BOOLEAN WaitForImmediate;
} SERIAL_STATUS, *PSERIAL_STATUS;

成员

Errors

一组标志,用于指示输入流中发生的接收错误。 此成员设置为零或设置为以下一个或多个标志位的按位 OR。

标志名称 含义
SERIAL_ERROR_QUEUEOVERRUN 串行控制器驱动程序的内部输入缓冲区被从输入流接收的数据溢出。 输入缓冲区已满,或在 EOF (文件) 字符结尾后收到字符。
SERIAL_ERROR_OVERRUN 硬件接收 FIFO 被从输入流接收的数据溢出。
SERIAL_ERROR_BREAK 输入行上出现中断条件。
SERIAL_ERROR_PARITY 在从输入流接收的字节中检测到奇偶校验错误。
SERIAL_ERROR_FRAMING 在从输入流接收的字节中检测到成帧错误。
 

串行控制器驱动程序提供累积的 SERIAL_ERROR_XXX 标志以满足 IOCTL_SERIAL_GET_COMMSTATUS 请求后,驱动程序会将标志重置为零。

HoldReasons

一组标志,用于指示串行端口当前正在等待将字节传输到输出流的原因。 此成员设置为零或设置为以下一个或多个标志位的按位 OR。

标志名称 含义
SERIAL_TX_WAITING_FOR_CTS 等待 CTS (清除以发送) 信号。
SERIAL_TX_WAITING_FOR_DSR 等待 DSR (数据集就绪) 信号。
SERIAL_TX_WAITING_FOR_DCD 等待 DCD (数据载体检测) 信号。
SERIAL_TX_WAITING_FOR_XON 等待 XON () 信号传输。
SERIAL_TX_WAITING_ON_BREAK ) 信号发送间隔 (间距值。
SERIAL_TX_WAITING_XOFF_SENT 发送了 XOFF (传输) 信号。 此信号标记串行端口的传输结束,然后串行端口将等待线路另一端的设备开始传输。 另一台设备接收作为 XON 信号传输的 XOFF 信号。
 

如果串行端口没有理由停止传输字节,则 HoldReasons 为零。

AmountInInQueue

从串行端口接收的、当前可从输入缓冲区读取的数据的字节数。

AmountInOutQueue

当前等待从输出缓冲区写入串行端口的传输数据的字节数。

EofReceived

是否已收到 EOF (文件末尾) 字符。 如果已收到 EOF,则此成员为 TRUE 。 否则为 FALSE。 EOF 字符标记输入流的末尾。

WaitForImmediate

串行端口是否正在等待传输即时字符。 如果串行端口正在等待传输即时字符,则此成员为 TRUE 。 否则为 FALSE。 如果在 HoldReasons 成员中设置了除 SERIAL_TX_WAITING_FOR_XON 以外的任何标志位,则直接字符的传输可能会延迟。 有关即时字符的详细信息,请参阅 IOCTL_SERIAL_IMMEDIATE_CHAR

注解

此结构由 IOCTL_SERIAL_GET_COMMSTATUS 请求使用。

要求

要求
Header ntddser.h

另请参阅

IOCTL_SERIAL_GET_COMMSTATUS

IOCTL_SERIAL_IMMEDIATE_CHAR