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。

输入缓冲区长度

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

输出缓冲区

没有。

输出缓冲区长度

没有。

状态块

信息 成员设置为零。

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

言论

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

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

要求

要求 价值
标头 ntddser.h (包括 Ntddser.h)

另请参阅

IOCTL_SERIAL_GET_MODEM_CONTROL