Compartir a través de


IOCTL_SERIAL_SET_WAIT_MASK IOCTL (ntddser.h)

La solicitud IOCTL_SERIAL_SET_WAIT_MASK configura el controlador de controlador serie para notificar a un cliente después de la aparición de cualquiera de un conjunto especificado de eventos de espera.

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 la sección Comentarios.

Un cliente especifica eventos de espera estableciendo una máscara de espera de evento de entrada en el OR bit a bit de una o varias de las marcas de evento. Un cliente puede borrar todos los eventos de espera estableciendo la máscara de espera del evento de entrada en cero.

Un cliente usa una solicitud de IOCTL_SERIAL_WAIT_ON_MASK para esperar a que se produzca un evento de espera. Si una solicitud wait-on-mask ya está pendiente cuando se procesa una solicitud set-wait-mask, la solicitud pendiente de espera en evento se completa con un estado de STATUS_SUCCESS y la máscara de evento de espera de salida se establece en cero.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El miembro AssociatedIrp.SystemBu ffer apunta a un búfer de ULONG que el cliente asigna y establece en una máscara de espera de eventos. La máscara de espera se establece en cero o en el OR bit a bit de uno o varios SERIAL_EV_XXX bits de marcas.

Longitud del búfer de entrada

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

Búfer de salida

Ninguno.

Longitud del búfer de salida

Ninguno.

Bloque de estado

El miembro information está establecido en cero.

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 la máscara de espera de entrada no es válida.

Observaciones

Las constantes SERIAL_EV_XXX definen los bits de marca en la máscara de espera para un puerto serie.

#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

Las constantesXXX SERIAL_EV_ definen los tipos de eventos que se pueden especificar en una máscara de espera. Después de que un cliente (aplicación o controlador periférico) abra una conexión a un puerto serie, el cliente puede especificar una máscara de espera que indique los tipos de eventos que el cliente necesita supervisar. Estos eventos son cambios en el estado de hardware del puerto serie. Cuando se produce un evento en la máscara de espera, se notifica al cliente.

Las solicitudes de control IOCTL_SERIAL_SET_WAIT_MASK y IOCTL_SERIAL_GET_WAIT_MASK usan máscaras de espera de eventos para especificar un conjunto de eventos en los que un cliente puede esperar. Un valor de máscara de espera es cero o el OR bit a bit de una o varias SERIAL_EV_XXX constantes. Un valor de máscara de espera de cero indica que el cliente no está esperando ningún evento.

El cliente envía una solicitud de control IOCTL_SERIAL_WAIT_ON_MASK para esperar un evento en la máscara de espera establecida actualmente. El controlador del controlador serie completa esta solicitud cuando se produce un evento en la máscara de espera.

En la tabla siguiente se muestran los bits de marca SERIAL_EV_XXX compatibles con SerCx2, SerCx y Serial.sys. Una entrada de la tabla indica que la extensión o el controlador del marco serie admiten el bit de marca correspondiente. Una entrada No indica que el bit de marca no se admite.

Bit de marca SerCx2 SerCx Serial.sys
SERIAL_EV_RXCHAR
SERIAL_EV_RXFLAG Consulte la nota. No
SERIAL_EV_TXEMPTY
SERIAL_EV_CTS
SERIAL_EV_DSR
SERIAL_EV_RLSD Consulte la nota.
SERIAL_EV_BREAK
SERIAL_EV_ERR
SERIAL_EV_RING Consulte la nota.
SERIAL_EV_PERR Consulte la nota. No No
SERIAL_EV_RX80FULL Consulte la nota. No
SERIAL_EV_EVENT1 Consulte la nota. No No
SERIAL_EV_EVENT2 Consulte la nota. No No
 
Nota SerCx2 puede o no admitir el bit de marca en la entrada de tabla indicada, según el controlador de controlador serie y las funcionalidades del hardware del controlador serie.
 
Para obtener más información sobre SerCx2, SerCx y Serial.sys, consulte Información general sobre controladores de controlador serie.

Requisitos

Requisito Valor
encabezado de ntddser.h (incluya Ntddser.h)

Consulte también

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_CHARS

SERIAL_STATUS