IOCTL_SERIAL_SET_MODEM_CONTROL IOCTL (ntddser.h)
La richiesta IOCTL_SERIAL_SET_MODEM_CONTROL imposta il registro di controllo modem (MCR) nell'UART. Non viene eseguita alcuna verifica dei parametri nelle impostazioni del registro fornite dal client.
Per ottenere il valore di MCR, un client può usare una richiesta di IOCTL_SERIAL_GET_MODEM_CONTROL.
Codice principale
Buffer di input
Il AssociatedIrp.SystemBuffer fa riferimento a un ULONG allocato dal client utilizzato per immettere informazioni sul controllo modem.
Lunghezza del buffer di input
Il membro Parameters.DeviceIoControl.InputBufferLength viene impostato sulle dimensioni, in byte, di un ULONG.
Buffer di output
Nessuno.
Lunghezza del buffer di output
Nessuno.
Blocco di stato
Il membro Informazioni è impostato su zero.
Il membro stato è impostato su uno dei valori di stato generico per le richieste di controllo del dispositivo seriale.
Osservazioni
L'implementazione di questa richiesta di controllo I/O (IOCTL) è specifica dell'hardware perché non è definito alcun layout standard per il registro di controllo modem (MCR) nei dispositivi UART compatibili con 16550. I driver per i dispositivi periferici che si connettono alle porte seriali devono evitare l'uso di questo IOCTL, che potrebbe funzionare con alcuni UART, ma non con altri. Questo IOCTL viene usato principalmente per configurare UART in modalità loopback per i test, ma solo se UART dispone di un MCR che supporta la modalità loopback.
Per un layout di esempio di mcr, vedere la definizione dei bit MCR (SERIAL_MCR_DTR tramite SERIAL_MCR_LOOP) nel file di intestazione Serial.h nell'esempio di driver seriale in GitHub.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ntddser.h (include Ntddser.h) |