IOCTL_SERIAL_GET_WAIT_MASK IOCTL (ntddser.h)
La richiesta IOCTL_SERIAL_GET_WAIT_MASK restituisce la maschera di attesa dell'evento attualmente impostata per il controller seriale.
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.
Per impostare una maschera di attesa eventi, un client può usare una richiesta di IOCTL_SERIAL_SET_WAIT_MASK . Per attendere l'occorrenza di un evento di attesa, un client usa una richiesta di IOCTL_SERIAL_WAIT_ON_MASK .
Codice principale
Buffer di input
Nessuno.
Lunghezza del buffer di input
Nessuno.
Buffer di output
Il membro AssociatedIrp.SystemBuffer punta a un buffer ULONG allocato dal client usato dal driver del controller seriale per restituire la maschera di attesa. La maschera di attesa è zero o bit per bit-OR di uno o più flag di eventiSERIAL_EV_XXX.
Lunghezza del buffer di output
Il membro Parameters.DeviceIoControl.OutputBufferLength è impostato sulle dimensioni, in byte, di un ULONG.
Blocco dello stato
Se la richiesta ha esito positivo, il membro Information è impostato sulla dimensione, in byte, di un ULONG. In caso contrario, 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.
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) |