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 .
Основной код
Входной буфер
Нет.
Длина входного буфера
Нет.
Выходной буфер
Элемент 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 | См. примечание. | Нет | Нет |
Требования
Требование | Значение |
---|---|
Заголовок | ntddser.h (включая Ntddser.h) |