/FASTDETECT is a command line flag in a boot.ini entry. It started showing up in Windows 2000 (W2K) by default. Why does this flag exist? Previous to W2K ntdetect.com performed a tremendous amount of device detection since PnP did not exist previous to W2K. One type of device that was detected by ntdetect.com was a serial attached mouse. When a serial mouse was detected, the serial driver would not load on the serial port, rather the serial mouse driver (sermouse.sys) would load on the serial port and control the hardware directly.

Now, along comes W2K which is a PnP enabled OS. In W2K, the serial mouse driver no longer controls the hardware directly, but communicates with the serial port driver and uses PIRPs instead of direct hw access and interrupts. This made the serial mouse detected by ntdetect.com useless since the serial mouse needs to be enumerated as a child of the serial port (by serenum.sys).

Since device detection on the serial takes time and now this detection is duplicated (making boot time longer), it made sense to remove the detection from ntdetect.com. It was not as simple as removing detection code from ntdetect.com because the machine could be a dual boot machine which boots both NT4 and Win2K and NT4 still relied on ntdetect.com for the serial mouse detection. The answer was to selectively not do the serial mouse (and some other specific device) detection it) based on the presence of a flag. This flag is /FASTDETECT. So by adding /FASTDETECT to the boot.ini entry for W2K and later OS's, the boot time is a bit faster (and every bit counts!).

The last problem we faced is what to name the flag. It had to be a name that did not beg to be deleted when someone editted boot.ini; it had to be a name that said "Keep me! I do great things!" We settled on /FASTDETECT since everyone wants their machine to boot faster and all the other proposals were too wild to see the light of day ;).