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(传输关闭)信号。 此信号标记串行端口的传输结束,然后等待线路另一端的设备开始传输。 另一台设备接收传输的 XOFF 信号作为 XON 信号。
 

如果串行端口没有停止传输字节的理由,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 请求使用。

要求

要求 价值
标头 ntddser.h

另请参阅

IOCTL_SERIAL_GET_COMMSTATUS

IOCTL_SERIAL_IMMEDIATE_CHAR