IOCTL_SERIAL_LSRMST_INSERT IOCTL (ntddser.h)

IOCTL_SERIAL_LSRMST_INSERT请求启用或禁用在接收数据流中插入有关线路状态和调制解调器状态的信息。 如果启用了 LSRMST 插入,驱动程序将插入受支持事件类型的事件信息。 事件信息包括 事件标头 ,后跟特定于事件的数据。

事件标头包含客户端指定的转义字符和指示事件类型的 SERIAL_LSRMST_XXX 常量。 驱动程序支持以下事件类型:

SERIAL_LSRMST_LSR_DATA
行状态发生更改。 串行控制器驱动程序插入事件标头,后跟特定于事件的数据,该数据是行状态寄存器的值,后跟处理行状态更改时接收硬件中存在的字符。
SERIAL_LSRMST_LSR_NODATA
行状态发生更改,但接收缓冲区中没有可用的数据。 串行控制器驱动程序插入事件标头,后跟特定于事件的数据,该数据是处理行状态更改时行状态寄存器的值。
SERIAL_LSRMST_MST
调制解调器状态发生更改。 串行控制器驱动程序插入事件标头,后跟特定于事件的数据,该数据是处理调制解调器状态更改时调制解调器状态寄存器的值。
SERIAL_LSRMST_ESCAPE
指示从设备接收的接收数据流中的下一个字符与客户端指定的转义字符相同。 串行控制器驱动程序插入事件标头。 没有特定于事件的数据。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer 成员指向要用作转义字符的客户端分配的 UCHAR 输入值。 如果转义字符为非零,则启用插入,并且串行驱动程序使用指定的转义字符。 否则,将禁用插入。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 成员设置为 UCHAR 的大小(以字节为单位)。

输出缓冲区

无。

输出缓冲区长度

无。

状态块

如果请求成功, 则信息 成员将设置为 UCHAR 的大小(以字节为单位)。 否则, 信息 设置为零。

Status 成员设置为串行设备控制请求的一般状态值之一。 STATUS_INVALID_PARAMETER状态指示指定的转义字符与) 上的 XON (传输相同,或 XOFF () 字符传输,或者通过握手流控制启用错误替换。

要求

要求
Header ntddser.h (包括 Ntddser.h)