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


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 имеет значение 0.

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

Комментарии

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

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

Требования

Требование Значение
Заголовок ntddser.h (включая Ntddser.h)

См. также раздел

IOCTL_SERIAL_GET_MODEM_CONTROL