IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)
La richiesta di IOCTL_SERIAL_WAIT_ON_MASK viene usata per attendere l'occorrenza di qualsiasi evento di attesa specificato utilizzando una richiesta di IOCTL_SERIAL_SET_WAIT_MASK .
Una richiesta wait-on-mask viene completata dopo uno degli eventi seguenti:
- Si verifica un evento di attesa specificato dalla richiesta set-wait-mask più recente.
- Viene ricevuta una richiesta di IOCTL_SERIAL_SET_WAIT_MASK mentre una richiesta wait-on-mask è in sospeso. Il driver completa la richiesta wait-on-mask in sospeso con lo stato STATUS_SUCCESS e la maschera di attesa di output è impostata su zero.
Un client invia una richiesta di IOCTL_SERIAL_WAIT_ON_MASK per attendere l'occorrenza di un evento specificato nella maschera di attesa fornita dalla richiesta di IOCTL_SERIAL_SET_WAIT_MASK più recente. Se uno o più eventi nella maschera di attesa corrente si verificano prima dell'invio della richiesta di IOCTL_SERIAL_WAIT_ON_MASK , la richiesta viene immediatamente completata con lo stato STATUS_SUCCESS e un valore della maschera di output che identifica gli eventi. Se non si verifica alcun evento nella maschera di attesa prima dell'invio della richiesta di IOCTL_SERIAL_WAIT_ON_MASK , questa richiesta viene contrassegnata come in sospeso e attende nella coda del controller seriale l'occorrenza successiva di un evento nella maschera di attesa corrente.
Dopo il completamento della richiesta di IOCTL_SERIAL_WAIT_ON_MASK di un client con stato STATUS_SUCCESS e un valore della maschera di output diverso da zero, il client può inviare una nuova richiesta di IOCTL_SERIAL_WAIT_ON_MASK per attendere un altro evento nella maschera di attesa corrente. Solo un nuovo evento che si verifica dopo il completamento della richiesta di IOCTL_SERIAL_WAIT_ON_MASK precedente causerà il completamento della nuova richiesta di IOCTL_SERIAL_WAIT_ON_MASK con lo stato STATUS_SUCCESS e un valore della maschera di output diverso da zero.
Codice principale
Buffer di input
Nessuno.
Lunghezza del buffer di input
Nessuno.
Buffer di output
AssociatedIrp.System buffer punta a un buffer ULONG che contiene una maschera di attesa degli eventi. La maschera di attesa dell'evento indica gli eventi di attesa che si sono verificati. La maschera di attesa dell'evento è impostata su zero o sull'OR bit per bit di uno o più bit del flag di SERIAL_EV_XXX .
Lunghezza del buffer di output
Il membro Parameters.DeviceIoControl.OutputBufferLength è impostato sulle dimensioni, in byte, di un oggetto ULONG.
Blocco dello stato
Il membro Information è impostato sulle dimensioni, in byte, di un ULONG.
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 non vengono impostati eventi di attesa o che una richiesta wait-on-mask è già in sospeso.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntddser.h (include Ntddser.h) |