Windows XP Driver INF File Installation Directives

In Microsoft Windows XP, hardware device driver Setup Information (.INF) files act as text-based roadmaps governing how the operating system detects, copies, and configures drivers for specific hardware components. This article breaks down the essential architecture, sections, and directives within Windows XP INF files—such as [Version], [Manufacturer], [DDInstall], and service creation entries—that dictated hardware installation procedures under the Windows Driver Model (WDM).

The Purpose of INF Files in Windows XP

Windows XP relied on the Plug and Play (PnP) manager and the SetupAPI subsystem to interpret INF files. When a device was connected, the OS read the INF file to match the device's hardware identification strings with the correct driver binaries, registry settings, and service configurations required to operate the hardware.

Essential INF Sections and Directives

A Windows XP INF file is organized into distinct, bracketed sections containing key-value directives executed sequentially by the operating system:

1. The [Version] Section

Every valid Windows XP INF required a [Version] section to identify the operating system target and driver classification.

  • Signature: Dictated OS compatibility. For Windows XP, this was typically set to "$Windows NT$".
  • Class and ClassGUID: Defined the hardware category (such as Net, Display, or Ports) to ensure the device appeared in the correct Device Manager category.
  • Provider: Indicated the creator of the INF file (e.g., Microsoft or a third-party vendor).
  • DriverVer: Specified the release date and version number of the driver package, which Windows XP used to resolve driver ranking conflicts.
  • CatalogFile: Pointed to the cryptographic digital signature file (.cat) validating Windows Hardware Quality Labs (WHQL) testing.

2. The [Manufacturer] and Models Sections

The [Manufacturer] section identified the hardware vendors and mapped them to specific model sections.

  • Windows XP supported platform extensions, allowing manufacturers to define decoration targets such as [ManufacturerName.NTx86] to isolate 32-bit x86 directives.
  • The referenced model section paired human-readable device names with exact hardware IDs (like PCI Vendor and Device IDs: PCI\VEN_xxxx&DEV_xxxx).

3. The [DDInstall] Section

The Device Driver Install (DDInstall) section was the core operational unit of the INF file. In Windows XP, it frequently used the .NT or .NTx86 decoration (e.g., [DeviceName.NT]). It contained directives that dictated resource management:

  • CopyFiles: Referenced a list of driver files (such as .sys binaries or .dll helper libraries) to be copied to system directories, usually defined by destination destination directories ([DestinationDirs]).
  • AddReg: Instructed the OS to create or modify keys and values in the Windows XP Registry, commonly configuring device parameters or hardware settings.
  • DelReg: Removed obsolete or conflicting registry keys prior to installation.

4. The [DDInstall.Services] Section

Unlike Windows 9x, Windows XP required kernel-mode drivers to run as system services managed by the Service Control Manager (SCM).

  • AddService: Defined how the driver binary loaded into memory. It specified parameters including the service name, display name, binary path, service type (such as SERVICE_KERNEL_DRIVER), and start type (such as SERVICE_BOOT_START or SERVICE_DEMAND_START).

5. File Location Directives

To locate physical files during installation from CDs, floppies, or local directories, Windows XP relied on:

  • [SourceDisksNames]: Defined the installation media, labels, and root directory paths.
  • [SourceDisksFiles]: Mapped individual files to their respective disk identifiers specified in SourceDisksNames.

6. The [Strings] Section

Located at the bottom of the INF file, the [Strings] section defined non-localizable string tokens (such as %DeviceDesc% or %Provider%). This streamlined localization and maintainability by keeping user-visible text separate from installation logic.