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