IOCTL_SERIAL_SET_MODEM_CONTROL IOCTL (ntddser.h)

IOCTL_SERIAL_SET_MODEM_CONTROL请求 (UART 中的 MCR) 设置调制解调器控制寄存器。 不会对客户端提供的寄存器设置执行参数检查。

若要获取 MCR 的值,客户端可以使用 IOCTL_SERIAL_GET_MODEM_CONTROL 请求。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer 成员指向客户端分配的 ULONG,该 ULONG 用于输入调制解调器控制信息。

输入缓冲区长度

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

输出缓冲区

无。

输出缓冲区长度

无。

状态块

信息成员设置为零。

状态成员设置为串行设备控制请求的泛型状态值之一。

注解

此 I/O 控制请求 (IOCTL) 实现是特定于硬件的,因为未为兼容 16550 的 UART 设备的 MCR () 的调制解调器控制寄存器定义标准布局。 连接到串行端口的外围设备的驱动程序应避免使用此 IOCTL,它可能适用于某些 UART,但不适用于其他 UART。 此 IOCTL 主要用于将 UART 配置为环回模式进行测试,但前提是 UART 具有支持环回模式的 MCR。

有关 MCR 的示例布局,请参阅 GitHub 上串行驱动程序示例的 Serial.h 头文件中的 SERIAL_MCR_LOOP) (SERIAL_MCR_DTR MCR 位的定义。

要求

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

另请参阅

IOCTL_SERIAL_GET_MODEM_CONTROL