write drivers that were compatible with other versions of Windows. Device driver access in WDM is implemented through a VxD device driver, NTKERN.VXD, which implements several Windows NT-specific kernel support functions. Support for WDM audio enables digital mixing, routing and processing of simultaneous audio streams and kernel streaming with high quality sample rate conversion on Windows 98. WDM Audio allows for software emulation of legacy hardware to support MS-DOS games, DirectSound support and MIDI wavetable synthesis. The Windows 95 11-device limitation for MIDI devices is eliminated. A Microsoft GS Wavetable Synthesizer licensed from Roland shipped with Windows 98 for WDM audio drivers. Windows 98 supports digital playback of audio CDs, and the Second Edition improves WDM audio support by adding DirectSound hardware mixing and DirectSound 3D hardware abstraction, DirectMusic kernel support, KMixer sample-rate conversion for capture streams and multichannel audio support. All audio is sampled by the Kernel Mixer to a fixed sampling rate which may result in some audio getting upsampled or downsampled and having a high latency, except when using Kernel Streaming or third-party audio paths like ASIO which allow unmixed audio streams and lower latency. Windows 98 also includes a WDM streaming class driver (Stream.sys) to address real time multimedia data stream processing requirements and a WDM kernel-mode video transport for enhanced video playback and capture. Windows Driver Model also includes Broadcast Driver Architecture, the backbone for TV technologies support in Windows. WebTV for Windows utilized BDA to allow viewing television on the computer if a compatible TV tuner card is installed. TV listings could be updated from the Internet and WaveTop Data Broadcasting allowed extra data about broadcasts to be received via regular television signals using an antenna or cable, by embedding data streams into the vertical blanking interval portion of existing broadcast television signals. Other device support improvements Windows 98 had more robust USB support than Windows 95, which only had support in OEM versions OSR2.1 and later. Windows 98 supports USB hubs, USB scanners and imaging class devices. Windows 98 also introduced built-in support for some USB Human Interface Device class (USB HID) and PID class devices such as USB mice, keyboards, force feedback joysticks etc. including additional keyboard functions through a certain number of Consumer Page HID controls. Windows 98 introduced ACPI 1.0 support which enabled Standby and Hibernate states. However, hibernation support was extremely limited and vendor-specific. Hibernation was only available if