How Windows 98 Supported USB Digital Cameras
During the late 1990s, the transition to digital photography accelerated, requiring operating systems to interface seamlessly with flash memory over the newly introduced Universal Serial Bus (USB). While Microsoft Windows 98 provided the foundational architecture for USB peripherals, it lacked native, out-of-the-box support for the USB Mass Storage Class. To connect early digital cameras as external drives, Windows 98 relied on vendor-supplied WDM (Windows Driver Model) drivers, dedicated OEM installation discs, and later, community-developed generic drivers that translated USB storage protocols into standard FAT drive letters.
The USB Mass Storage Landscape in Windows 98
When Microsoft released Windows 98 (First Edition) in 1998, USB 1.1
support was integrated directly into the operating system kernel.
However, the USB Implementers Forum (USB-IF) was still finalizing the
standardized USB Mass Storage Class (MSC/UMS) specifications. As a
result, Windows 98 shipped without a generic mass storage driver
(usbstor.sys), a component that would only become a
standard feature with Windows 2000 and Windows Millennium Edition
(Me).
When users plugged an early digital camera into a Windows 98 PC, the operating system detected an unknown device via the standard USB enumeration handshake. Without a native driver class matching the hardware ID, Windows could not assign a drive letter to the camera's memory card.
Proprietary Vendor Drivers
To bridge this gap, camera manufacturers—including Sony, Olympus, Kodak, and Nikon—shipped their cameras with installation CD-ROMs containing proprietary device drivers.
- Hardware Identification: When connected, the camera reported its Vendor ID (VID) and Product ID (PID) to the host controller.
- Setup Information (
.INF): The manufacturer’s.INFfile matched the camera's VID/PID strings, directing Windows to load a custom driver package. - Driver Stacks (
.SYS): The vendor package typically provided a minidriver that adhered to the Windows Driver Model (WDM). This driver communicated withusbd.sys(the USB bus class driver) on one side and the Windows storage subsystem on the other.
These drivers translated the camera’s internal flash storage—typically formatted in FAT12 or FAT16—into standard block-level storage recognizable by the operating system's Virtual File Allocation Table (VFAT) driver.
Drive Letter Assignment via Mass Storage Emulation
Once the driver was initialized, Windows 98 treated the camera as a standard removable block device:
- The driver registered the camera with the I/O Subsystem as a SCSI-compatible or ATAPI-compatible disk drive.
- The operating system automatically assigned the camera a standard
drive letter (e.g.,
D:orE:) in Windows Explorer. - Users could interact with the camera storage natively, dragging and dropping files using standard file management operations rather than proprietary transfer utilities.
This mass storage approach differed from the alternative Picture Transfer Protocol (PTP), which arrived later and required specialized imaging software rather than mounting directly as a file system.
Windows 98 Second Edition and Generic Mass Storage Drivers
In 1999, Microsoft launched Windows 98 Second Edition (SE), which significantly updated the core USB stack and improved WDM stability. While Windows 98 SE still omitted a generic USB mass storage driver, the improved stack allowed developers and hardware vendors to create broader, multi-device drivers.
In the years following Windows 98 SE's release, third-party
developers extracted the USB mass storage components from Windows Me
(such as usbstor.sys) and modified them to create "Native
USB" (NUSB) drivers for Windows 98 SE. These generic driver packs
patched the Windows 98 driver database, allowing the operating system to
automatically mount virtually any USB mass storage-compliant digital
camera, flash drive, or card reader without requiring the original
manufacturer’s installation CD.