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 asClass=Netwith 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
.sysfiles) 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.