The IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS request sets a serial device to a basic operating mode. Serial's basic operating mode reads and writes one byte at a time, and does not use handshake flow control or time-outs. The basic operation mode is suitable for use by a driver that uses a subset of the 16550 UART interface. Examples of such drivers include a mouse driver or a graphics pad driver for older hardware that use a 16450 UART.

The IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS request returns the operating mode settings that are in use just before Serial sets the basic operation mode. A client uses an IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS request to restore a previous operating mode. A client should treat the operating mode settings as opaque. Serial does not verify the settings when the settings are restored. Note also that a replacement driver for Serial might implement a different set of basic settings.

Major code


Input buffer


Input buffer length


Output buffer

The AssociatedIrp.SystemBuffer points to a client-allocated SERIAL_BASIC_SETTINGS structure that Serial uses to output the current configuration.

Output buffer length

The Parameters.DeviceIoControl.OutputBufferLength is set to the size, in bytes, of a SERIAL_BASIC_SETTINGS structure.

Status block

If the request is successful, the Information member is set to the size, in bytes, of SERIAL_BASIC_SETTINGS. Otherwise, the Information member is set to zero.

The Status member is set to one of the Generic Status Values for Serial Device Control Requests. If Status is set to STATUS_BUFFER_TOO_SMALL, the value of Parameters.DeviceIoControl.OutputLength is less than the size, in bytes, of a SERIAL_BASIC_SETTINGS structure.


Requirement Value
Header ntddser.h (include Ntddser.h)

See also