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 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 que 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, vea SERIAL_EV_XXX.

Un cliente envía una solicitud 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 de 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 próxima 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 otro evento en la máscara de espera actual. Solo un nuevo evento que se produce después de que se haya completado 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

AssociatedIrp.System búfer 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 Estado de se establece en uno de los valores de estado genéricos de para 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
encabezado de ntddser.h (incluya Ntddser.h)

Consulte también

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX