IOCTL_SERIAL_SET_MODEM_CONTROL 请求在 UART 中设置调制解调器控制寄存器(MCR)。 客户端提供的注册设置上未执行参数检查。
若要获取 MCR 的值,客户端可以使用 IOCTL_SERIAL_GET_MODEM_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) |