I have an application that is monitoring a serial port. Data is sent from the other side only when the port is opened but I found out that I lose some data when I reboot my computer. Why is that?

The computer is running Windows XP.

3 Answers 3


This is caused by Windows opening the port at boot time for a very short time (under half a second). During this process, all of the serial ports are opened in order to detect input devices such the mouse.

The solution is to simply tell Windows not to do this, this way you don't lose your data since it's not being received. We can do this by modifying boot.ini and ensuring that we're using the /fastdetect switch. However, this will already be on in most cases, as it's enabled by default in Windows setup. I found the solution here, the article also includes informatation about NT and 9x (there are different solutions).

  • 1
    Seems like it should be the other way around. The documentation indicates that /fastdetect prevents windows from querying the serial port. They probably need to ensure that this is in boot.ini support.microsoft.com/kb/833721
    – Greg Askew
    Jan 18, 2010 at 5:12
  • Oops! You're right. I re-read the page I got the info from. Answer updated, and I added a link to my source. Jan 18, 2010 at 14:34

I'd triple check that your CTS is being properly set and handled (specifically, that both ends know they're supposed to use hardware flow control). It's astonishingly rare for anyone to get this right, and even rarer for some sensor to have enough buffer to be able to store all its results whilst the machine is rebooting, so even if the flow control is working right, it's quite possible the sensor is discarding some data (either oldest or newest, depending on its design) because your machine is taking too long to reboot and reassert CTS.


There is also a command line tool available to disable scanning on selected com ports in the registry, if you want to avoid manually editing the boot.ini file.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .