IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)
Запрос IOCTL_SERIAL_WAIT_ON_MASK используется для ожидания возникновения любого события ожидания, указанного с помощью запроса IOCTL_SERIAL_SET_WAIT_MASK.
Запрос ожидания по маске завершается после выполнения одного из следующих событий:
- Происходит событие ожидания, указанное последним запросом set-wait-mask.
- Запрос IOCTL_SERIAL_SET_WAIT_MASK получается во время ожидания запроса на маску. Драйвер завершает ожидающий запрос ожидания по маске с состоянием STATUS_SUCCESS, а для маски ожидания выходных данных задано нулевое значение.
Клиент отправляет запрос IOCTL_SERIAL_WAIT_ON_MASK, чтобы ждать возникновения события, указанного в маске ожидания, предоставленной последним запросом IOCTL_SERIAL_SET_WAIT_MASK. Если одно или несколько событий в текущей маске ожидания возникают перед отправкой запроса IOCTL_SERIAL_WAIT_ON_MASK, этот запрос немедленно завершается состоянием STATUS_SUCCESS и значением маски вывода, определяющим события. Если событие в маске ожидания не происходит до отправки запроса IOCTL_SERIAL_WAIT_ON_MASK, этот запрос помечается как ожидающий, и он ожидает в очереди последовательного контроллера для следующего вхождения события в текущей маске ожидания.
После завершения запроса IOCTL_SERIAL_WAIT_ON_MASK клиента с состоянием STATUS_SUCCESS и ненулевого значения маски вывода клиент может отправить новый запрос IOCTL_SERIAL_WAIT_ON_MASK, чтобы ждать другого события в текущей маске ожидания. Только новое событие, возникающее после завершения предыдущего запроса IOCTL_SERIAL_WAIT_ON_MASK, приведет к завершению нового запроса IOCTL_SERIAL_WAIT_ON_MASK с состоянием STATUS_SUCCESS и ненулевого значения маски вывода.
Основной код
Входной буфер
Никакой.
Длина входного буфера
Никакой.
Выходной буфер
AssociatedIrp.System буфер указывает на буфер ULONG, содержащий маску ожидания события. Маска ожидания события указывает, какие события ожидания произошли. Маска ожидания события имеет значение нулю или побитовое значение ИЛИ одного или нескольких битов флага SERIAL_EV_XXX.
Длина выходного буфера
Элемент Parameters.DeviceIoControl.OutputBufferLength имеет размер в байтах ULONG.
Блок состояния
Элемент Information имеет размер в байтах ULONG.
Элемент состояния имеет одно из универсальных значений состояния для запросов последовательного управления устройствами. Состояние STATUS_INVALID_PARAMETER указывает, что события ожидания не заданы, или запрос ожидания по маске уже ожидается.
Требования
Требование | Ценность |
---|---|
заголовка | ntddser.h (include Ntddser.h) |