IOCTL_SERIAL_SET_WAIT_MASK IOCTL (ntddser.h)

La richiesta di IOCTL_SERIAL_SET_WAIT_MASK configura il driver del controller seriale per notificare a un client dopo l'occorrenza di uno di un set specificato di eventi di attesa.

Un client può attendere gli eventi di attesa rappresentati dai bit di flag SERIAL_EV_RXCHAR tramite SERIAL_EV_EVENT2. Per altre informazioni su questi flag di evento, vedere la sezione Osservazioni.

Un client specifica gli eventi di attesa impostando una maschera di attesa dell'evento di input su bit-OR di uno o più flag di evento. Un client può cancellare tutti gli eventi di attesa impostando la maschera di attesa dell'evento di input su zero.

Un client usa una richiesta di IOCTL_SERIAL_WAIT_ON_MASK per attendere l'occorrenza di un evento di attesa. Se una richiesta wait-on-mask è già in sospeso quando viene elaborata una richiesta set-wait-mask, la richiesta wait-on-event in sospeso viene completata con lo stato di STATUS_SUCCESS e la maschera evento di attesa di output è impostata su zero.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Il membro AssociatedIrp.SystemBuffer punta a un buffer ULONG allocato dal client e imposta su una maschera di attesa eventi. La maschera di attesa è impostata su zero o sul bit-OR di uno o più flagSERIAL_EV_XXX.

Lunghezza del buffer di input

Il membro Parameters.DeviceIoControl.InputBufferLength è impostato sulle dimensioni, in byte, di un ULONG.

Buffer di output

Nessuno.

Lunghezza del buffer di output

Nessuno.

Blocco dello stato

Il membro Information è impostato su zero.

Il membro Status è impostato su uno dei valori di stato generici per le richieste di controllo del dispositivo seriale. Lo stato di STATUS_INVALID_PARAMETER indica che la maschera di attesa di input non è valida.

Commenti

Le costanti SERIAL_EV_XXX definiscono i bit di flag nella maschera di attesa per una porta seriale.

#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

Le costanti SERIAL_EV_XXX definiscono i tipi di eventi che possono essere specificati in una maschera di attesa. Dopo che un client (applicazione o driver periferico) apre una connessione a una porta seriale, il client può specificare una maschera di attesa che indica i tipi di eventi che il client deve monitorare. Questi eventi sono modifiche allo stato hardware della porta seriale. Quando si verifica un evento nella maschera di attesa, il client riceve una notifica.

Le richieste di controllo IOCTL_SERIAL_SET_WAIT_MASK e IOCTL_SERIAL_GET_WAIT_MASK usano maschere di attesa eventi per specificare un set di eventi in cui un client può attendere. Un valore della maschera di attesa è zero o bit per bit-OR di una o più costantiSERIAL_EV_XXX. Un valore di maschera di attesa pari a zero indica che il client non è in attesa di eventi.

Il client invia una richiesta di controllo IOCTL_SERIAL_WAIT_ON_MASK per attendere un evento nella maschera di attesa attualmente impostata. Il driver del controller seriale completa questa richiesta quando si verifica un evento nella maschera di attesa.

Nella tabella seguente vengono illustrati i bit di flag SERIAL_EV_XXX supportati da SerCx2, SerCx e Serial.sys. Una voce nella tabella indica che l'estensione del framework seriale o il driver supporta il bit di flag corrispondente. Una voce No indica che il bit di flag non è supportato.

Flag bit SerCx2 SerCx Serial.sys
SERIAL_EV_RXCHAR
SERIAL_EV_RXFLAG Vedere la nota. No
SERIAL_EV_TXEMPTY
SERIAL_EV_CTS
SERIAL_EV_DSR
SERIAL_EV_RLSD Vedere la nota.
SERIAL_EV_BREAK
SERIAL_EV_ERR
SERIAL_EV_RING Vedere la nota.
SERIAL_EV_PERR Vedere la nota. No No
SERIAL_EV_RX80FULL Vedere la nota. No
SERIAL_EV_EVENT1 Vedere la nota. No No
SERIAL_EV_EVENT2 Vedere la nota. No No
 
Nota SerCx2 può o non supportare il bit di flag nella voce di tabella indicata, a seconda del driver del controller seriale e delle funzionalità dell'hardware del controller seriale.
 
Per altre informazioni su SerCx2, SerCx e Serial.sys, vedere Panoramica dei driver del controller seriale.

Requisiti

Requisito Valore
Intestazione ntddser.h (include Ntddser.h)

Vedi anche

IOCTL_SERIAL_GET_CHARS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_SET_CHARS

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_CHARS

SERIAL_STATUS