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
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 Sì 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 | Sì | Sì | Sì |
SERIAL_EV_RXFLAG | Vedere la nota. | No | Sì |
SERIAL_EV_TXEMPTY | Sì | Sì | Sì |
SERIAL_EV_CTS | Sì | Sì | Sì |
SERIAL_EV_DSR | Sì | Sì | Sì |
SERIAL_EV_RLSD | Vedere la nota. | Sì | Sì |
SERIAL_EV_BREAK | Sì | Sì | Sì |
SERIAL_EV_ERR | Sì | Sì | Sì |
SERIAL_EV_RING | Vedere la nota. | Sì | Sì |
SERIAL_EV_PERR | Vedere la nota. | No | No |
SERIAL_EV_RX80FULL | Vedere la nota. | No | Sì |
SERIAL_EV_EVENT1 | Vedere la nota. | No | No |
SERIAL_EV_EVENT2 | Vedere la nota. | No | No |
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntddser.h (include Ntddser.h) |