Windows 98 Network Card INF Driver Installation

Windows 98 managed network card installation through plain-text setup information (.inf) files interpreted by its Plug and Play (PnP) subsystem and Network Control Panel applet. This article explains how Windows 98 parsed .inf files, matched hardware IDs, configured Network Driver Interface Specification (NDIS) bindings, transferred binary drivers, and updated the system registry to initialize network hardware.

Hardware Detection and INF Matching

When a network interface card (NIC)—typically PCI, ISA, or PCMCIA—was inserted into a Windows 98 system, the operating system’s bus enumerators detected the device and queried its hardware identification strings (such as PCI\VEN_xxxx&DEV_xxxx).

The OS then initiated the "Add New Hardware Wizard" and searched for matching installation instructions. Windows 98 scanned the hidden C:\WINDOWS\INF directory, which contained pre-installed driver profiles (such as NET.INF), alongside user-provided paths such as floppy disks (A:\), driver CD-ROMs, or network shares.

Structure and Interpretation of the Network .INF File

Network .inf files followed a strict Windows Setup API format categorized by specific section tags. Windows 98 relied on these tags to identify the device and prepare the software environment:

  • [Version]: Specified the operating system compatibility, the driver signature status, and the device class, marked explicitly as Class=Net with the corresponding network class GUID.
  • [Manufacturer] and [Models]: Listed supported hardware revisions and mapped physical Plug and Play IDs to device-specific installation sections.
  • [ControlFlags]: Defined whether a device could be installed interactively or excluded from manual selection menus.
  • [Device.ndi]: A network-specific install section (Network Device Installer) unique to network components. It instructed Windows 98 on how to integrate the card into the NDIS stack.

The Network Device Installer (NDI) and Registry Updates

Unlike standard hardware drivers, network cards in Windows 98 required integration into the system's transport layers. The .inf file achieved this via .ndi sub-keys defined in the [AddReg] sections.

When parsing the .inf, Windows 98 created entries under the registry path: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net

Within this location, the .inf instructed the OS to register:

  • Driver Interfaces: Identifying whether the driver was an NDIS 3, NDIS 4, or NDIS 5 miniport driver (usually .sys files) or a legacy 16-bit real-mode driver.
  • Compatible Protocols: Directives defining which network protocols (such as TCP/IP, IPX/SPX, or NetBEUI) and network clients (such as Client for Microsoft Networks) could bind to the adapter.
  • Hardware Parameters: Configurable driver options such as Duplex Mode, Link Speed, I/O Port, and IRQ settings, which Windows 98 exposed directly inside the "Properties" tab of the Network Control Panel.

File Copying and Driver Binding

Once the .inf was validated, the installer parsed the [CopyFiles] and [SourceDisksFiles] sections. Windows 98 transferred the physical network driver files—predominantly 32-bit protected-mode drivers (.sys or .vxd)—into C:\WINDOWS\SYSTEM or C:\WINDOWS\SYSTEM32\DRIVERS.

Simultaneously, Windows 98 created a cached copy of the .inf file inside C:\WINDOWS\INF\OTHER, renaming it (for example, OEM0.INF) so the operating system could reference the driver settings for future configuration changes without prompting the user for installation media again.

Installation Completion and System Reboot

After processing the file copies and writing registry branches, Windows 98 prompted the user to insert the original Windows 98 installation CD-ROM if core networking components, dynamic-link libraries (.dll), or standard protocol files were missing.

Because Windows 98 relied on monolithic virtual device driver (VxD) initialization and static binding of the NDIS network stack during system startup, changes to network adapters could not dynamically take effect in real time. The process concluded with a mandatory system restart prompt, allowing the VNETBIOS and NDIS subsystems to load the newly registered drivers into memory on reboot.