Opening and Initializing a Serial Device
When Serial is used as a function driver, the following considerations apply to opening and initializing a serial device:
Serial supports only one open at a time on a serial device.
A device is in an undefined state when it is opened. A client should initialize a device to a known state before using the device. A user-mode client must use the communications functions that are supported by the Windows Base Services in the Microsoft Windows SDK. A kernel-mode client can use the IOCTL_SERIAL_SET_Xxx and the IOCTL_SERIAL_INTERNAL_Xxx requests.
All clients must open a serial device when needed, and close the device immediately after they are through with the port.
Serenum must open an RS-232 port to enumerate the port. Clients that hold an RS-232 port open indefinitely should not use Serenum.