Поделиться через


IOCTL_SERIAL_SET_MODEM_CONTROL IOCTL (ntddser.h)

Запрос IOCTL_SERIAL_SET_MODEM_CONTROL задает регистр управления модемом (MCR) в UART. Проверка параметров не выполняется в параметрах регистра, предоставленных клиентом.

Чтобы получить значение MCR, клиент может использовать запрос IOCTL_SERIAL_GET_MODEM_CONTROL.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Элемент AssociatedIrp.SystemBuffer указывает на выделенный клиентом ULONG, который используется для ввода сведений об элементе управления модемом.

Длина входного буфера

Элемент Parameters.DeviceIoControl.InputBufferLength имеет размер в байтах ULONG.

Выходной буфер

Никакой.

Длина выходного буфера

Никакой.

Блок состояния

Элемент Information имеет значение нулю.

Элемент состояния имеет одно из универсальных значений состояния для запросов последовательного управления устройствами.

Замечания

Реализация этого запроса управления ввода-вывода (IOCTL) зависит от оборудования, так как стандартный макет не определен для регистра управления модемом (MCR) на устройствах UART, совместимых с 16550. Драйверы периферийных устройств, подключающихся к последовательным портам, должны избегать использования этого IOCTL, который может работать с некоторыми UART, но не с другими. Этот IOCTL в основном используется для настройки UART в режим обратного цикла для тестирования, но только в том случае, если UART имеет MCR, поддерживающий режим обратного цикла.

Пример макета MCR см. в определении битов MCR (SERIAL_MCR_DTR через SERIAL_MCR_LOOP) в файле заголовка Serial.h в примере последовательного драйвера на сайте GitHub.

Требования

Требование Ценность
заголовка ntddser.h (include Ntddser.h)

См. также

IOCTL_SERIAL_GET_MODEM_CONTROL