Windows 2000 WDM Sound Card Driver Installation

Microsoft Windows 2000 fundamentally transformed audio support by adopting the Windows Driver Model (WDM), unifying driver architecture across both Windows 98 and Windows NT-based kernels. This article outlines how Windows 2000 detects, installs, and configures sound card drivers using WDM, detailing the interaction between the Plug and Play (PnP) subsystem, setup components, system-supplied class drivers, and hardware-specific miniport drivers.

When a sound card is inserted into a system running Windows 2000, the operating system's Plug and Play (PnP) Manager identifies the hardware via its bus enumerator (typically the PCI or ISA bus driver). The PnP Manager queries the hardware for its Device ID and Vendor ID (PnP IDs) and initiates the driver search process. The Setup subsystem checks the Windows driver cache (Driver.cab), pre-installed OEM locations, or prompts the user for media containing a vendor-provided installation package.

WDM sound card installation centers around a setup information file (.inf). The .inf file matches the sound card’s specific hardware ID to an installation section, specifying:

  • The target audio class GUID ({4D36E96C-E325-11CE-BFC1-08002BE10318} for Media devices).
  • The vendor-provided binary (typically a miniport driver .sys file).
  • Registry modifications required to bind the device to the Windows audio subsystem.
  • Any auxiliary components, such as custom control panels or firmware loaders.

Unlike legacy Windows NT 4.0 drivers or Windows 9x VxD drivers, WDM uses a layered architecture. Microsoft provides the primary system-level drivers, while the hardware vendor only needs to supply a lightweight miniport driver:

  1. Port Class Driver (portcls.sys): Windows 2000 supplies this system driver to handle generic audio tasks, standard PnP events, and power management (ACPI).
  2. Miniport Driver: The manufacturer-supplied file that communicates directly with the sound card hardware. It implements standard interfaces (such as IMiniportWaveCyclic or IMiniportWavePci) to handle hardware-specific data registers and interrupts.

During installation, the Setup API copies the miniport driver to %SystemRoot%\System32\Drivers and creates configuration entries in the registry under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services and the device's specific Enum branch. The system then binds the miniport driver to portcls.sys, creating a functional driver stack.

Once the driver stack is registered, Windows 2000 links the hardware to the Kernel Streaming (KS) architecture and the System Audio Driver (sysaudio.sys). sysaudio.sys queries the newly installed sound driver to build an audio filter graph. This graph maps the hardware's capabilities—such as digital-to-analog converters (DACs), analog-to-digital converters (ADCs), and hardware mixers—to the system's software layer.

The Kernel Mixer (kmixer.sys) is simultaneously bound to the driver, allowing the operating system to mix multiple audio streams from legacy MME/WinMM APIs, DirectSound, and WDM-aware applications before sending a unified stream to the sound card. Once these links are established, the PnP Manager transitions the device state to started, enabling audio playback and recording immediately without requiring a system reboot.