IOCTL_SERIAL_SET_MODEM_CONTROL IOCTL (ntddser.h)
Die IOCTL_SERIAL_SET_MODEM_CONTROL Anforderung legt das Modemsteuerungsregister (MCR) im UART fest. Für die vom Client bereitgestellten Registereinstellungen wird keine Parameterüberprüfung durchgeführt.
Um den Wert des MCR abzurufen, kann ein Client eine IOCTL_SERIAL_GET_MODEM_CONTROL Anforderung verwenden.
Hauptcode
Eingabepuffer
Das AssociatedIrp.SystemBuffer-Element verweist auf eine vom Client zugewiesene ULONG, die zum Eingeben von Modemsteuerungsinformationen verwendet wird.
Eingabepufferlänge
Das Parameters.DeviceIoControl.InputBufferLength-Element ist auf die Größe eines ULONG-Elements in Bytes festgelegt.
Ausgabepuffer
Keine.
Länge des Ausgabepuffers
Keine.
Statusblock
Das Element Information ist auf 0 festgelegt.
Das Statuselement ist auf einen der generischen Statuswerte für Anforderungen zur seriellen Gerätesteuerung festgelegt.
Hinweise
Die Implementierung dieser E/A-Steuerungsanforderung (IOCTL) ist hardwarespezifisch, da für das Modemsteuerungsregister (Modem Control Register, MCR) kein Standardlayout für 16550-kompatible UART-Geräte definiert ist. Die Treiber für Peripheriegeräte, die mit seriellen Ports verbunden sind, sollten die Verwendung dieser IOCTL vermeiden, die möglicherweise mit einigen UARTs, aber nicht mit anderen funktioniert. Diese IOCTL wird in erster Linie verwendet, um die UART zum Testen in den Loopbackmodus zu konfigurieren, aber nur, wenn der UART über einen MCR verfügt, der den Loopbackmodus unterstützt.
Ein Beispiellayout eines MCR finden Sie in der Definition der MCR-Bits (SERIAL_MCR_DTR bis SERIAL_MCR_LOOP) in der Headerdatei Serial.h im Beispiel für serielle Treiber auf GitHub.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddser.h (include Ntddser.h) |