Ntdetect.com
ntdetect.com is a component of Microsoft Windows NT-based operating systems that operate on the x86 architecture. It is used during the Windows NT startup process, and is responsible for detecting basic hardware that will be required to start the operating system.

Overview 
The bootstrap loader takes the control over the booting process and loads NTLDR.
Ntdetect.com is invoked by NTLDR, and returns the information it gathers to NTLDR when finished, so that it can then be passed on to ntoskrnl.exe, the Windows NT kernel.

Ntdetect.com is used on computers that use BIOS firmware. Computers with Extensible Firmware Interface, such as IA-64, use a method of device-detection that is not tied to the operating system.

Hardware detection operates somewhat differently depending on whether or not Advanced Configuration and Power Interface (ACPI) is supported by the hardware. It passes on the hardware details gathered from the BIOS onto the OS. If ACPI is supported, the list of found devices is handed to the kernel, Windows will take responsibility for assigning each device some resources. On older hardware, where ACPI is not supported, the BIOS takes responsibility for assigning resources, not the operating system, so this information is passed to the kernel as well.

In addition, ntdetect.com will make a determination as to which hardware profile to use. Windows supports multiple distinct hardware profiles, which allows a single copy of Windows to work well in situations where the hardware changes between specific layouts on a regular basis. This is common with portable computers that connect to a docking station.

In Windows Vista and later Windows operating systems, the HAL only supports ACPI, and ntdetect.com has been replaced by winload.exe, so that Windows will be able to control hardware resource allocation on every machine in the same way.  Hardware profiles are also no longer supported in Windows Vista.

The information gathered by ntdetect.com is stored in the HKLM\HARDWARE\DESCRIPTION key in the Windows Registry at a later stage in the boot process.

Classes of hardware detected 
 Hardware identification
 Hardware date & time
 Bus and adapter types
 SCSI adapters
 Video adapters
 Keyboard
 Serial and parallel communication ports
 Hard drives
 Floppy disks
 Mouse
 Floating-point coprocessor
 Industry Standard Architecture-based devices

Troubleshooting 
To aid in troubleshooting, Microsoft has made available "debug" versions of ntdetect.com which will display detailed information about the hardware that was detected.  Called ntdetect.chk, it is included in the Windows Support Tools.

Notes

References 

 Windows XP Resource Kit - Troubleshooting the Startup Process
 Windows 2000 Resource Kit - Starting Windows 2000 - Detecting Hardware
 Windows NT Workstation Resource Kit - Troubleshooting Startup and Disk Problems

External links 
 Download of ntdetect.chk for Windows 2000
 Windows XP SP2 Support Tools includes ntdetect.chk for Windows XP.

Windows components
Windows files