启用或禁用在应用程序通过 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) |