Compartir a través de


IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)

La solicitud IOCTL_SERIAL_WAIT_ON_MASK se usa para esperar la aparición de cualquier evento de espera especificado mediante una solicitud de IOCTL_SERIAL_SET_WAIT_MASK .

Una solicitud wait-on-mask se completa después de que se produzca uno de los siguientes eventos:

  • Se produce un evento de espera especificado por la solicitud set-wait-mask más reciente.
  • Se recibe una solicitud de IOCTL_SERIAL_SET_WAIT_MASK mientras está pendiente una solicitud wait-on-mask. El controlador completa la solicitud pendiente de espera en máscara con un estado de STATUS_SUCCESS y la máscara de espera de salida está establecida en cero.
Un cliente puede esperar a los eventos de espera representados por bits de marca SERIAL_EV_RXCHAR a través de SERIAL_EV_EVENT2. Para obtener más información sobre estas marcas de eventos, consulte SERIAL_EV_XXX.

Un cliente envía una solicitud de IOCTL_SERIAL_WAIT_ON_MASK para esperar a que se produzca un evento especificado en la máscara de espera proporcionada por la solicitud de IOCTL_SERIAL_SET_WAIT_MASK más reciente. Si se producen uno o varios eventos en la máscara de espera actual antes de enviar la solicitud IOCTL_SERIAL_WAIT_ON_MASK , esta solicitud se completa inmediatamente con un estado de STATUS_SUCCESS y un valor de máscara de salida que identifica los eventos. Si no se produce ningún evento en la máscara de espera antes de enviar la solicitud de IOCTL_SERIAL_WAIT_ON_MASK , esta solicitud se marca como pendiente y espera en la cola del controlador serie para la siguiente aparición de un evento en la máscara de espera actual.

Una vez completada la solicitud de IOCTL_SERIAL_WAIT_ON_MASK de un cliente con un estado de STATUS_SUCCESS y un valor de máscara de salida distinto de cero, el cliente puede enviar una nueva solicitud de IOCTL_SERIAL_WAIT_ON_MASK para esperar a otro evento en la máscara de espera actual. Solo un nuevo evento que se produce después de que se completó la solicitud de IOCTL_SERIAL_WAIT_ON_MASK anterior hará que la nueva solicitud de IOCTL_SERIAL_WAIT_ON_MASK se complete con un estado de STATUS_SUCCESS y un valor de máscara de salida distinto de cero.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

Ninguno.

Longitud del búfer de entrada

Ninguno.

Búfer de salida

El búfer AssociatedIrp.System apunta a un búfer de ULONG que contiene una máscara de espera de eventos. La máscara de espera del evento indica qué eventos de espera se produjeron. La máscara de espera de eventos se establece en cero o en el or bit a bit de uno o varios de los bits de marca de SERIAL_EV_XXX .

Longitud del búfer de salida

El miembro Parameters.DeviceIoControl.OutputBufferLength se establece en el tamaño, en bytes, de un ULONG.

Bloque de estado

El miembro Information se establece en el tamaño, en bytes, de un ULONG.

El miembro Status se establece en uno de los valores de estado genéricos para las solicitudes de control de dispositivos serie. Un estado de STATUS_INVALID_PARAMETER indica que no se ha establecido ningún evento de espera o que ya está pendiente una solicitud wait-on-mask.

Requisitos

Requisito Valor
Header ntddser.h (incluya Ntddser.h)

Consulte también

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX