IOCTL_SERIAL_LSRMST_INSERT IOCTL (winioctl.h)
启用或禁用在应用程序通过 ReadFile 函数获取的常规数据流中放置行状态和调制解调器状态值。
启用此行状态和调制解调器状态数据放置模式后,数据流中的状态值前面有转义字符。 用户可定义的转义字符由 IOCTL_SERIAL_LSRMST_INSERT 控制代码设置。 有关状态值的详细信息,请参阅“备注”部分。
若要执行此操作,请使用以下参数调用 DeviceIoControl 函数。
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
IOCTL_SERIAL_LSRMST_INSERT, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
注解
注意
使用此方案的应用程序必须检查数据流中的每个字符,以确定是否存在调制解调器状态或行状态数据。
如果 已打开LSRMST_INSERT 模式,则以下值遵循数据流中指定的转义字符。
值 | 含义 |
---|---|
SERIAL_LSRMST_ESCAPE | 指示转义字符本身在数据流中的接收。 |
SERIAL_LSRMST_LSR_DATA | 指示发生了行状态更改,并且数据在接收硬件缓冲区中可用。 此 BYTE 之后是行状态寄存器的 BYTE 值,是处理行状态更改时接收硬件缓冲区中存在的 BYTE 。 |
SERIAL_LSRMST_LSR_NODATA | 指示发生了行状态更改,但接收硬件缓冲区中没有数据可用。 |
SERIAL_LSRMST_MST | 指示发生了调制解调器状态更改。 此 BYTE 之后是 一个 BYTE ,它是处理调制解调器状态更改时调制解调器状态寄存器的值。 |
要求
最低受支持的客户端 | Windows XP |
最低受支持的服务器 | Windows Server 2003 |
标头 | winioctl.h (包括 Windows.h) |