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


IOCTL_SERIAL_GET_WAIT_MASK IOCTL (ntddser.h)

Запрос IOCTL_SERIAL_GET_WAIT_MASK возвращает маску ожидания события, которая в настоящее время задана для последовательного контроллера.

Клиент может ожидать событий ожидания, представленных битами флагов , SERIAL_EV_RXCHARчерез SERIAL_EV_EVENT2. Дополнительные сведения об этих флагах событий см. в разделе Примечания.

Чтобы задать маску ожидания события, клиент может использовать запрос IOCTL_SERIAL_SET_WAIT_MASK . Чтобы дождаться возникновения события ожидания, клиент использует запрос IOCTL_SERIAL_WAIT_ON_MASK .

Основной код

IRP_MJ_DEVICE_CONTROL

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

Нет.

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

Нет.

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

Элемент AssociatedIrp.SystemBuffer указывает на выделенный клиентом буфер ULONG, который драйвер последовательного контроллера использует для вывода маски ожидания. Маска ожидания равна нулю или побитовой или побитовой отметке одного или нескольких флагов событий SERIAL_EV_XXX .

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

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

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

Если запрос выполнен успешно, элементу Information присваивается размер ULONG (в байтах). В противном случае элементу Information присваивается нулевое значение.

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

Комментарии

Константы SERIAL_EV_XXX определяют биты флагов в маске ожидания для последовательного порта.

#define SERIAL_EV_RXCHAR     0x0001
#define SERIAL_EV_RXFLAG     0x0002
#define SERIAL_EV_TXEMPTY    0x0004
#define SERIAL_EV_CTS        0x0008
#define SERIAL_EV_DSR        0x0010
#define SERIAL_EV_RLSD       0x0020
#define SERIAL_EV_BREAK      0x0040
#define SERIAL_EV_ERR        0x0080
#define SERIAL_EV_RING       0x0100
#define SERIAL_EV_PERR       0x0200
#define SERIAL_EV_RX80FULL   0x0400
#define SERIAL_EV_EVENT1     0x0800
#define SERIAL_EV_EVENT2     0x1000

Константы SERIAL_EV_XXX определяют типы событий, которые можно указать в маске ожидания. Когда клиент (приложение или драйвер периферийного устройства) открывает подключение к последовательному порту, клиент может указать маску ожидания, указывающую типы событий, которые необходимо отслеживать клиенту. Эти события являются изменениями в состоянии оборудования последовательного порта. При возникновении события в маске ожидания клиент получает уведомление.

Запросы IOCTL_SERIAL_SET_WAIT_MASK и IOCTL_SERIAL_GET_WAIT_MASK управления используют маски ожидания событий, чтобы указать набор событий, от которых клиент может ждать. Значение маски ожидания равно нулю или побитовой или одной или нескольким констант SERIAL_EV_XXX . Значение маски ожидания, равное нулю, указывает, что клиент не ожидает каких-либо событий.

Клиент отправляет запрос IOCTL_SERIAL_WAIT_ON_MASK элемента управления на ожидание события в текущей маске ожидания. Драйвер последовательного контроллера завершает этот запрос при возникновении события в маске ожидания.

В следующей таблице показано, какие биты флагов SERIAL_EV_XXX поддерживаются SerCx2, SerCx и Serial.sys. Запись Да в таблице указывает, что расширение или драйвер последовательной платформы поддерживает соответствующий бит флага. Запись Нет указывает, что бит флага не поддерживается.

Бит флага SerCx2 SerCx Serial.sys
SERIAL_EV_RXCHAR Да Да Да
SERIAL_EV_RXFLAG См. примечание. Нет Да
SERIAL_EV_TXEMPTY Да Да Да
SERIAL_EV_CTS Да Да Да
SERIAL_EV_DSR Да Да Да
SERIAL_EV_RLSD См. примечание. Да Да
SERIAL_EV_BREAK Да Да Да
SERIAL_EV_ERR Да Да Да
SERIAL_EV_RING См. примечание. Да Да
SERIAL_EV_PERR См. примечание. Нет Нет
SERIAL_EV_RX80FULL См. примечание. Нет Да
SERIAL_EV_EVENT1 См. примечание. Нет Нет
SERIAL_EV_EVENT2 См. примечание. Нет Нет
 
Примечание SerCx2 может поддерживать бит флага в указанной записи таблицы в зависимости от драйвера последовательного контроллера и возможностей оборудования последовательного контроллера.
 
Дополнительные сведения о SerCx2, SerCx и Serial.sys см. в статье Общие сведения о драйверах последовательного контроллера.

Требования

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

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

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_SET_WAIT_MASK

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_CHARS

SERIAL_STATUS