Chapter 30 - Hardware Management

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

This chapter describes four major components of hardware management in Microsoft Windows 98: Win32 Driver Model (WDM)—the new driver model compatible with Windows 98 and future versions of Windows NT, system bus support, hardware device support, and power management. This chapter is intended primarily for writers of device drivers, computer technicians, system administrators, network administrators, and anyone else interested in how these components operate and are supported by Windows 98.

Note Although the material in this chapter is common to both Windows 98 and future versions of Windows NT, within this resource kit, WDM architecture, aspects of system bus support and hardware-device support, and certain power management capabilities are described only in relation to Windows 98. 

See Also

  • For more information about the WDM architecture and its relationship with Windows 98, see Chapter 28, "Windows 98 Architecture." 

  • For more information about how to use the Windows 98 Device Manager, see Chapter 24, "Device Management." 

Overview of Win32 Driver Model

Cc768200.spacer(en-us,TechNet.10).gif Cc768200.spacer(en-us,TechNet.10).gif

Win32 Driver Model (WDM) defines a device-driver architecture that provides a common set of I/O services understood by both Windows 98 and future versions of Windows NT. With WDM, developers can write a single bus driver or device driver for both operating systems.

WDM is based on the concept of layers of driver classes. Each layer isolates portions of the services required of a device driver and allows hardware vendors to contain all hardware-specific functionality into a single file. Before WDM, device drivers had to include hooks for a particular operating system, in addition to the elements necessary to interact with a specific piece of hardware.

Understanding WDM

This section describes WDM. The WDM layered architecture, shown in Figure 30.1, is based on the concept of class drivers.


Figure 30.1 WDM layered architecture 

There can be any number of driver layers, depending on the configuration of the computer. In this figure, there are six driver layers:

  • Legacy Virtualization drivers 

  • Device Class drivers 

  • Device minidrivers 

  • Bus Class drivers 

  • Bus minidrivers 

  • Ntkern.vxd (platform abstraction layer) 

The WDM layer contains the following types of drivers:

  • Device Class drivers 

  • Device minidrivers 

  • Bus Class drivers 

  • Bus minidrivers 

A bus minidriver and a bus class driver for a device are not fundamentally different from other device class drivers and device minidrivers.

The layers of the WDM architecture are detailed in Chapter 28, "Windows 98 Architecture."

Under Windows 98, WDM provides a set of kernel services, device drivers, and bus drivers that enables new bus and device classes to have a single driver for each class, while allowing Windows 98 to fully support existing virtual device drivers (VxDs).

For more information about the workings of the WDM kernel, see the WDM Device Driver Kit (DDK).

Microsoft supports the following technologies using WDM drivers: OnNow power management, Plug and Play, USB, the IEEE 1394 bus, and hardware device classes, including digital audio, Human Interface Device (HID), imaging (still image and video capture), and DVD. Besides providing a set of drivers for buses and mainstream hardware devices supported by WDM, Windows 98 allows you to create custom drivers for unsupported hardware devices as well.

For each bus class and hardware device class provided by WDM, Windows 98 provides a class driver. The interface for this driver is documented in the Windows 98 DDK. Because Microsoft provides all platform-specific integration support for WDM, you are required to write only minidrivers for hardware devices whose classes are supported by Microsoft. In addition, Windows 98 provides enhanced power management for these devices.

For more information about minidrivers, see Chapter 28, "Windows 98 Architecture."

Using the WDM Stream Class

Many devices rely on the WDM Stream class driver. It uses a standard interface for interconnecting device drivers to optimize the flow of data within the Windows 98 kernel. The WDM Stream class driver is used by some audio devices and video-capture devices, as well as hardware decoders (such as MPEG-2) used for playing DVD movies. In addition, the class driver helps to deal with common operating system tasks, such as direct memory access (DMA), scatter/gather memory use, and Plug and Play. The WDM Stream class driver functions on both internal and external buses.

The WDM Stream class lets you work with a single driver model for MPEG, video capture, USB audio and video, IEEE 1394 audio and video, and other streaming hardware. Therefore, if you are creating drivers for multifunction hardware devices, you can build on the Stream class and use a single driver model for all data types. Also, no driver needs to be written for USB audio drivers. This is a great improvement over previous architectures, which required the developer to create drivers using a different driver model for each type of hardware device (for example, audio, MIDI, and video capture).

The WDM Stream class driver is designed to cover an entire category of hardware devices, with each device supported by a minidriver supplied by the manufacturer. This significantly reduces the amount of code required to support a device — provided the device follows standard design specifications and principles.

For more information about the WDM Stream class, see the following:

  • "Win32 Driver Model Connection and Streaming Architecture Functional Specification" in the Windows 98 DDK 

  • Help files in the Windows 98 DDK 

Identifying Bus Classes Supported by WDM

The following WDM drivers are provided by Windows 98.


Windows 98 provides a USB class driver and a PCI enumerator, and supports USB hubs, the Universal Host Controller Interface (UHCI) standard, the Open Host Controller Interface (OpenHCI) standard, and HID-compliant USB devices. The WDM Stream class provides additional infrastructure for most USB-compliant devices (most HID devices and imaging devices).

IEEE 1394

Windows 98 provides an IEEE 1394 bus class driver and a minidriver for Texas Instruments Lynx, Adaptec host controllers, and 1394 OpenHCI-compliant host controllers.

Identifying Hardware Device Classes Supported by WDM

The following hardware device classes are supported by Windows 98.


Windows 98 provides built-in HID support for the following:

  • System devices (such as keyboard and mouse). 

  • Gaming devices (such as joysticks and gamepads) using DirectInput. 

  • HID-compliant devices connected using USB (such as keyboards, mouse devices, gaming devices, personality modules, remote controls, and telephony devices). 

Note Microsoft Windows 98 supports any HID-compliant device; however, the device may require additional device or vendor-specific drivers or applications to be installed before it is functional.


DVD support is based on the WDM Stream class driver. When an original equipment manufacturer (OEM) creates a decoder card, a WDM decoder-card minidriver has to be written. Non-WDM components include a class driver for the DVD-ROM drive, a collection of DirectMovie filters, and the Universal Disk Format (UDF) file system to ensure support for UDF-formatted DVD disks.

For more information about UDF, see Chapter 10, "Disks and File Systems."

Digital Audio

Windows 98 provides minidrivers for WDM audio and USB audio, and also provides a cross-application Kernel-mode mixer and a sample-rate converter as clients of the Stream class driver.

Still Image

Windows 98 provides WDM drivers for USB and SCSI still image devices, and supports still image devices (scanners, for example) plugged into serial and parallel ports.

Video Capture

WDM support for video capture is based on the Stream class driver. Windows 98 provides minidrivers for USB and IEEE 1394 cameras, as well as PCI and Videoport capture devices. Support includes DirectMovie filters for WDM video-capture interfaces, and for backward compatibility, a Video for Windows (VFW)-to-Stream class mapper.

Supporting Power Management

Windows 98 directs power management through the OnNow system. In the OnNow system, the operating system directs power management and integrates the activities of other components. The goal of OnNow is to turn the system on quickly through the use of power management techniques. The strategy for achieving that goal is to use power management techniques and have the operating system run the power management process.

WDM under Windows 98 supports OnNow power management for all USB devices. For more information about OnNow support under WDM, see "Supporting OnNow Through WDM" later in this chapter.

Understanding Driver Solutions Provided by Windows 98

To help you determine when to create custom drivers, this section describes the features and capabilities of the drive solutions provided in Windows 98, and how these solutions apply to various kinds of devices.

WDM Stream Class

The Microsoft WDM Stream class, through participation in WDM Connection and Streaming Architecture (CSA), abstracts a way to transport high-bandwidth, time-stamped, latency-sensitive data streams between kernel-mode components or between kernel-mode drivers and user-mode components. Support is provided for power management and Plug and Play.

Through CSA, the Stream class works well with Microsoft DirectShow (formerly known as ActiveMovie), in that it shares media types, has similar streaming states (Stop, Pause, Run), and shares the same concept of pins and connections. Although mainstream implementations of streaming include video capture, TV viewing, and DVD movie playback, the Stream class can also support other device types. An example is high-volume capture of instrumentation data, where time-stamping and data manipulation are important features. The ease with which DirectShow can use this data is an important consideration in deciding to use the Stream class to support a specific device.

For more information about writing WDM class drivers, see the WDM DDK.

HID Class

The HID class driver supports control devices, such as keyboards, mouse devices, and gaming devices. Any device with controls can benefit from the HID class driver. For example, remote controls and front panels are likely candidates for HID class-driver support. Support is also provided for power management and Plug and Play. Although a USB HID minidriver is provided with Windows 98, the HID class driver is not bus-specific. You can develop HID class minidrivers that support legacy input devices using HID emulation or that support HID devices using legacy ports or the IEEE 1394 bus.

For more information about the HID class, see the Windows 98 DDK Help file, "Human Interface Devices."

Port Class

The Microsoft Port class supports PCI and ISA/DMA audio devices. Existing Port drivers include Wave I/O using cyclic DMA, Wave I/O using scatter/gather, Topology (MixerLine support), and MIDI. You can use the Port class to support a specific audio device by writing one or more miniport drivers.

Like the Stream class, the Port class participates in CSA and has the same streaming capabilities and the same synergy with DirectShow. The Port class differs from the Stream class as follows:

  • The Port class uses a three-tiered approach, combining the class driver, port drivers, and vendor-supplied miniports. 

  • Port drivers address a narrow class of audio functions, allowing the miniport interface to be positioned very close to the hardware. 

  • Multiple combinations of Port/miniport drivers can be associated with a single device. This explicitly addresses the need to support multifunction cards. 

WDM miniport audio drivers are simpler to write than VxD drivers. For more information about the Port class, see the Windows 98 DDK document, "WDM Streaming Miniport Driver Model Specification."

Still Image Architecture

The Microsoft Still Image (STI) architecture is not a class, but an infrastructure that supports the use of still image devices, such as scanners and still image cameras with Windows 98. STI currently provides support for SCSI, serial, and USB devices. The architecture is extendible, so Infrared Data Association (IrDA) or IEEE 1394 devices, for example, can be easily incorporated. WDM abstracts the interfaces to which the vendor must write; the vendor need only write a miniport driver that exposes the specific functionality of the device.

For more information about STI, see the Windows 98 DDK Help file, "Architecture and Interfaces for Scanners and Digital Still Cameras Design Notes and Reference."

USB and the IEEE 1394 Bus

Each USB and IEEE 1394 bus class driver provided under Windows 98 is independent of its host bus and supports respective bus adapters or bridges on any other type of bus. Plug and Play support is provided. Both interfaces use I/O request packets (IRPs) to communicate with their respective bus drivers.

For more information about the USB driver and the IEEE 1394 bus driver, see the following Help files in the Windows 98 DDK:

  • "Universal Serial Bus" 

  • "IEEE 1394 Bus Driver Design Notes and Reference" 

Overview of System Buses

Cc768200.spacer(en-us,TechNet.10).gif Cc768200.spacer(en-us,TechNet.10).gif

Windows 98 supports four system bus standards for connecting hardware devices to the computer. The two new standards are Universal Serial Bus (USB) and IEEE 1394, both supported by WDM. The other two are PCI and PC Card, both currently supported by Windows 95 but unsupported by WDM. The following sections describe the four system bus standards supported by Windows 98.

Using USB

USB is an external bus standard for the computer that brings the Plug and Play capability of hardware devices (such as keyboards, mouse devices, and hard drives) outside the computer, eliminating the need to install cards into dedicated computer slots and reconfigure the system. With USB, hardware devices can be automatically configured as soon as they are physically attached—without the need to reboot or run the setup sequence. USB is supported by WDM under Windows 98.

USB Topology

As seen in Figure 30.2, USB uses a tiered topology, allowing you to attach up to 127 devices to the bus simultaneously. USB currently supports up to five tiers. Each device can be located up to five meters from its hub.


Figure 30.2 Example of the USB topology 

The three types of USB components are:

  • The host, which is also known as the root, the root tier, or the root hub. It is built into the motherboard or installed as an adapter card in the computer. The host controls all traffic on the bus and can also function as a hub. 

  • The hub, which provides a point, or port, to attach a device to the bus. Hubs are also responsible for detecting devices being attached or detached from the bus and for providing power management for devices attached to the hub. Hubs are either bus-powered (drawing power directly from the bus) or self-powered (drawing power from an external source). A self-powered device can be plugged into a bus-powered hub. A bus-powered hub cannot be connected to another bus-powered hub or support more than four downstream ports. A bus-powered device that draws more than 100 mA cannot be connected to a bus-powered hub. 

  • The device, which is attached to the bus through a port. USB devices can also function as hubs. For example, a USB monitor can have ports for attaching a USB keyboard and a mouse. In this case, the monitor is also a hub. 

Note When you plug a device into a particular port for the first time, Windows 98 must go through the detection and enumeration process with that device.

Choosing Devices Supported by USB

You can connect the following USB devices to your computer: monitor controls, audio I/O devices, telephones, modems, speakers, keyboards, mouse devices, joysticks, scanners, printers, low-bandwidth video devices, digital still cameras, data gloves, and digitizers. For computer-telephony integration, USB provides an interface for Integrated Services Digital Network (ISDN) and digital PBXs.

For USB, the computer host controller is implemented through the OpenHCI or UHCI standards. To work with USB, the host controller must comply with one of these standards.

The USB Connector and Cable

The USB specification defines a standard connector, socket, and cable, which all USB devices can use. This single standard eliminates the confusion caused by the current mixture of connector and cable types required for hardware devices. The USB hub uses a type A connector, and the device uses a type B connector.

Data Transfer Rates Supported by USB

USB supports four data transfer modes: interrupt, control, bulk, and isochronous. Each mode applies to the endpoints of the same name and has separate characteristics. Isochronous and interrupt endpoints reserve bandwidth and are guaranteed access to transfer data at the established rate. Bulk and control endpoints are scheduled for best fit or for whatever bandwidth is available, but 10% of the total bus bandwidth is reserved for bulk and control transfers. Guaranteed data delivery is required to support the demands of multimedia applications and devices.

The USB host determines the data transfer rate and the priority assigned to a data stream. USB supports the following maximum data transfer rates, depending on the amount of bus bandwidth a device requires:

  • 1.5 megabits per second (Mbps) for devices that do not require a large amount of bandwidth, such as mouse devices and keyboards. 

  • 12 Mbps isochronous transfer rate for higher bandwidth devices, such as telephones, modems, speakers, scanners, video devices, and printers. 

USB Support for Plug and Play

Windows 98 supports Plug and Play through USB in several ways.

Hot Plug-in Capability. You can plug a USB device into the system anytime. The USB hub driver enumerates the device and notifies the system that the device is present.

Persistent Addressing. USB devices use descriptors to identify the device and its capabilities and protocols used. The serial number generates the Plug and Play ID, and the port address indicates the port and hub the device is connected to. If the device does not provide a serial number, USB uses the device's port address.

Power Management Support. USB supports three power modes: On, Suspend, and Off. USB devices can be placed in Suspend mode and still retain the ability to wake up the system.

USB Driver Interface

Windows 98 supports USB by allowing USB device drivers to communicate with the USB driver stack. Between the USB device drivers (for example, Human Interface [HID] drivers for keyboard, mouse, and joystick) and the USB driver stack is the USB Driver Interface (USBDI). In Windows 98, this communication takes place within the WDM layered architecture.

The USB driver architecture is shown in Figure 30.3.

Note Although Windows 98 natively supports many USB devices, some devices might require additional drivers or application software (for example, a device developed after the release of Windows 98 might not be inherently recognized). Such a device would ship with a diskette or other medium containing the required driver or application software.


Figure 30.3 USB Driver Architecture 

Figure 30.3 shows the following modules:

  • Usbhub.sys is the USB hub driver. It is loaded when Usbd.sys enumerates the root hub built into each USB host controller as the driver for each host controller is loaded. 

  • Usbd.sys is the USB class driver. 

  • Uhcd.sys (Universal Host Controller Driver) and Ohcd.sys (Open Host Controller Driver) are USB host controller drivers. 

In addition, Hidclass.sys, a WDM input class driver, sends and receives HID reports to and from its minidrivers. Hidusb.sys, an HID device driver, sends and receives HID reports over the USB. The PCI Enumerator loads the USB stack driver components when a USB bus is detected on a platform and always loads at least the other core components.

Windows 98 is able to recognize a USB device once the client device driver communicates with the USB driver stack. This requires that a WDM I/O request packet (IRP) be issued to pass information across the USBDI between the client device driver and the USB driver stack.

For more information about how device drivers communicate with the USB through the use of IRPs, see the Windows 98 DDK.

Using the IEEE 1394 Bus

Windows 98 supports the IEEE 1394 bus, also known as FireWire. It is designed for high-bandwidth computer devices, such as digital camcorders, cameras, and videodisc players. IEEE 1394 devices are supported by WDM in accordance with the OpenHCI standard.

You can connect up to 63 devices to one IEEE 1394 bus and interconnect up to 1023 buses to form a very large network with over 64,000 devices. Each device can have up to 256 terabytes of memory addressable over the bus. A built-in mechanism ensures equal access to the bus for all devices.

For more information about device support under IEEE 1394, see "Choosing Devices Supported by IEEE 1394" later in this chapter.

Looking at the IEEE 1394 Bus Topology

Figure 30.4 shows an example of an IEEE 1394 bus configuration.


Figure 30.4 An IEEE 1394 bus configuration 

The four types of IEEE 1394 bus components are:

  • A device, which attaches to the bus. An IEEE 1394 device usually has 3 ports, although the maximum is 27. You can daisy-chain up to 16 devices—more than 16 devices can be connected in a tree topology. Windows 98 assigns physical addresses on power-up (this resets the bus) and whenever you add or remove a device from the system. 

  • A splitter, which allows considerable flexibility in designing and implementing IEEE 1394 bus topology by providing extra IEEE 1394 ports. 

  • A bridge, which isolates data traffic within a specific area of the bus. 

  • A repeater, which extends the distance between devices by retransmitting data signals across the bus. 

Choosing Devices Supported by IEEE 1394

Windows 98 supports IEEE 1394 by allowing IEEE 1394 device drivers to communicate with the IEEE 1394 bus class driver. In accordance with the OpenHCI standard, Windows 98 currently includes the IEEE 1394 bus class driver with hardware-specific minidriver extensions for add-on and motherboard host controllers.

The IEEE 1394 Bus Connector and Cable

The IEEE 1394 specification defines a standard connector and socket based on the Nintendo GameBoy connector. An IEEE 1394 bus cable contains two power conductors and two twisted pairs for transmitting data.

Data Transfer Rates Supported by IEEE 1394

The IEEE 1394 specification currently supports the following bus transfer rates:

  • S100 (98.304 Mbps) 

  • S200 (196.608 Mbps) 

  • S400 (393.216 Mbps) 

Higher transfer rates are under development.

You can freely interconnect devices with different data rates; communication automatically takes place at the highest rate supported by the lowest-rate device.

IEEE 1394 supports two data transfer protocols: isochronous and asynchronous. An isochronous connection transfers data at a guaranteed, fixed rate of delivery. Guaranteed data delivery is required to support the demands of multimedia applications and devices. Asynchronous data can be transferred whenever there is no isochronous traffic on the bus.

IEEE 1394 Support for Plug and Play

Windows 98 supports hot plugging of nodes; you can plug an IEEE 1394 device into the system anytime.

IEEE 1394 Standards

IEEE 1394 device standards are currently under development. To simplify IEEE 1394 device development, Microsoft is participating with industry partners and the 1394 Trade Association to define the standards necessary to enable seamless integration of IEEE 1394 consumer devices with computers. Table 30.1 lists the standards.

Table 30.1 Proposed IEEE 1394 standards 



Standard interface for computer host controller hardware

Enables broad computer market adoption of IEEE 1394 by providing standard hardware and software much like IDE.

General-purpose command transport protocol for IEEE 1394

Simplifies device development by providing a common transport protocol that can be used to support a range of device classes.

Device power management 
Interfaces for centralized power management (proposed)

Provides standard power-control interfaces for centralized power management and OnNow devices, based on application demand.

Plug and Play design reference
Requirements for interoperability (proposed)

Provides guidelines for configuration-ROM structure, bus-management capabilities, and electro-mechanical design for overall ease of use.

Each proposed standard has been submitted to the 1394 Trade Association for industry review and feedback. After this has been completed, many of the standards will be forwarded to an appropriate standards body, such as the Institute of Electrical and Electronics Engineers (IEEE) or the American National Standards Institute (ANSI). Wide adoption of these standards will ensure the interoperability of IEEE 1394 devices and computers.

Comparing the IEEE 1394 Bus and USB

The IEEE 1394 bus and USB are used for different classes of devices. The IEEE 1394 bus, with its fast data rates, is designed for high-bandwidth consumer electronics connections to the computer, such as those required by digital camcorders and digital videodisc players, storage, printers, and scanners. The slower data rate of USB is suited for more traditional computer connections, such as those required by keyboards, mouse devices, joysticks, and handheld scanners. USB is also suitable for advanced computer games, high-fidelity audio, and highly compressed video, such as MPEG-1.

The Simply Interactive PC (SIPC) is the Microsoft initiative to create computers that never have to be serviced by the user and are as simple to use as any household appliance. The SIPC concept requires that the ports for the IEEE 1394 bus and USB be easily accessible, that is, available on the front of the computer where you can easily walk up and plug in a hardware device. More permanent installations of IEEE 1394 or USB devices will be handled from the back of the computer.

Because the SIPC concept is compatible with the IEEE 1394 bus, USB, WDM, and OnNow power management, Windows 98 and future versions of Windows NT will be the operating systems of choice for computers designed under the SIPC concept.

Supporting Legacy Buses

The following sections describe how the buses supported previously by Windows now function under Windows 98.

The PCI Bus

The PCI bus is a high-performance bus well suited for transferring data between hardware devices, adapters, and other bus backplanes. Today, almost all computers ship with a PCI backplane or host bus. The PCI bus is usually connected to the host CPU and main memory through a bridge device that controls the data transfers between the CPU, cache, and main memory. This bridge also provides the major interface, and controls the data transfer between main memory and all the other devices on the PCI bus.

Because of its high bandwidth, the PCI bus is capable of high-performance data transfers.

Note This calculation is an approximation of the maximum transfer rate. Not every PCI bus cycle is used to transfer data, and the calculation does not include latency or guarantees of isochronous transfers.

To calculate the maximum transfer rate on the PCI bus
  1. Multiply the bus clock rate by the bus width in bits. 

  2. Divide by the number of clock cycles it takes for each data transfer (1 cycle for the PCI bus).

The following example illustrates this calculation:

Clock rate

33 MHz

Bus width

32 bits

Maximum transfer rate

1.06 Gbps

This is higher than the maximum IEEE 1394 bus rates (98.304, 196.608, and 393.216 Mbps) and considerably higher than the maximum USB rate (12 Mbps).

PC Card and CardBus

Windows 98 supports the new features of products designed for the Personal Computer Memory Card International Association (PCMCIA) standard, also known as PC Card. These products include multifunction cards, 3.3-V cards, and 32-bit PC Cards. These advancements add the modularity and bus-independence of Plug and Play without affecting device drivers. Driver development under Windows 98 is identical to that used in Windows 95, and many Plug and Play drivers that operated under Windows 95 can be used unmodified under Windows 98 to support the same controller implemented on the multifunction or 32-bit PC cards.

Windows 98 supports CardBus, a combination of PC Card 16 and PCI, also known as PC Card 32. CardBus brings 32-bit performance and the benefits of the PCI bus to the PC Card format. CardBus allows portable computers to run high-bandwidth applications, such as Video Capture.

As of this writing, CardBus implementations under Windows 98 are being developed.

The SCSI Bus

The Small Computer Standard Interface (SCSI) is used with such devices as hard disks and CD-ROM drives. Each device on the bus is connected in a daisy-chained topology. Plug and Play SCSI devices support dynamic changes to the adapter and automatic configuration of device ID and termination.

For more information about support for SCSI devices and drivers, see Chapter 10, "Disks and File Systems."

For more information about Plug and Play using SCSI devices, see Chapter 24, "Device Management."

The ISA Bus

The Industry Standard Architecture (ISA) bus is specified for the IBM PC/AT. Plug and Play ISA devices can be used on existing computers, because the specification does not require any change to ISA buses. For legacy devices, standard ISA cards can coexist with Plug and Play ISA cards on the same computer. Windows 98 determines the type of hardware and its configuration during Setup.

For more information about ISA devices, see Chapter 24, "Device Management."

The EISA Bus

The Enhanced Industry Standard Architecture (EISA) bus is specified for x86-based computers by an industry consortium. EISA devices use cards that are upwardly compatible from ISA. As with ISA, standard EISA cards can coexist with Plug and Play EISA cards on the same computer.

For more information about EISA devices, see Chapter 24, "Device Management."

Overview of Hardware Devices

Cc768200.spacer(en-us,TechNet.10).gif Cc768200.spacer(en-us,TechNet.10).gif

Windows 98 supports standards for the following types of hardware devices: HID, DVD, Digital Audio, Still Image, Multiple Display Support, Video Capture, and Accelerated Graphics Port (AGP). Much of this support is either new or significantly improved over what was offered under Windows 95. For Windows 98, driver support is mostly WDM-based, which means the same set of drivers will also be used in future versions of Windows NT. The following sections describe the hardware device standards supported by Windows 98.

Using HID

Windows 98 supports devices compliant with the Human Interface Device (HID) firmware specification, the new standard for input devices, such as keyboards, mouse and pointing devices, joysticks, gamepads, and other types of game controllers. Support is based on the specification developed by the USB Implementers' Forum and is targeted towards devices connecting through USB. The HID-compliant device is self-describing, indicating its type and providing usage information when plugged into the host system.

For more information about the USB Implementers Forum, see . The HID specification is also available at this Web site.

Under Windows 98, HID keyboards, mouse devices, joysticks, and gamepads that plug into USB are connected to the existing legacy input device infrastructure. This is done through a set of VxD-to-WDM mappers that map the HID data into the corresponding legacy format. This allows the operating system and existing applications to receive data transparently from these kinds of USB/HID devices.

In general, communication with HID devices is Win32 File I/O-based, and devices can be accessed in both kernel mode and user mode. Devices that connect through USB are Plug and Play and power-managed in accordance with the OnNow specification for input devices.

Supporting HID Devices

Windows 98 provides, through the built-in USB and HID drivers stacks and the HID parser, complete support for any HID-compliant device. Third-party drivers and applications can enumerate, open, and exchange data with any HID device and have this data parsed by the built-in HID parser. In addition, Windows 98 includes complete support for the following types of standard HID input devices:

  • Keyboards and keypads 

  • Mouse and pointing devices 

  • Joysticks and gamepads 

These types of HID devices can be plugged into the system and be used immediately. They do not require installation of additional software drivers.

The generality of the HID specification opens up the opportunity for new kinds of input devices. For example, HID usage pages and usages are defined for the following types of devices:

  • Simulation devices (for example, automobiles, planes, tanks, spaceships, and submarines) 

  • Virtual reality devices (for example, belts, body suits, gloves, head trackers, head-mounted displays, and oculometers) 

  • Sports-equipment devices (for example, golf clubs, baseball bats, rowing machines, and treadmills) 

  • Consumer appliance devices (for example, audio and video appliances, and remote controls) 

  • Advanced game controllers (for example, 3-D game controllers and pinball devices) 

For more information about HID usage, see the supplemental HID Usages Table specification at .

Understanding the HID Architecture

The HID class driver (Hidclass.sys), the USB-specific HID class minidriver (Hidusb.sys), and the HID kernel-mode parser (Hidparse.sys) comprise the heart of the Windows 98 HID architecture. The HID architecture in Windows 98 is shown in Figure 30.5.


Figure 30.5 HID architecture 

The following HID modules are shown in Figure 30.5:

  • Hidclass.sys is the bus-independent HID class driver. It sends and receives HID reports to and from its minidrivers. Hidclass.sys also provides input queues that allow multiple clients to have open handles to the same device. 

  • Hidusb.sys is the USB-specific HID class minidriver. It sends and receives HID reports over the USB bus. 

  • Hid.dll and Hidparse.sys provide parsing services. Hid.dll is a user-mode parsing service, and Hidparse.sys is a kernel-mode parsing service. These modules aid applications and drivers in parsing HID reports. 

  • Kbdhid.vxd maps keyboard HID reports into the existing legacy data format expected by Vkd.vxd. 

  • Mouhid.vxd maps mouse HID reports into the existing legacy data format expected by Vmd.vxd. 

  • Joyhid.vxd calls Hidparse.sys to find the various elements that might be in a joystick HID report (X, Y, rudder, throttle, hat switch, buttons) and then maps these report values into a data format expected by Vjoyd.vxd. 

As in Windows 95, legacy VxD style minidrivers connect Vmd.vxd with the serial and PS/2 ports, and connect Vjoyd.vxd with the game ports.

Plug and Play and power management support for USB/HID devices takes place within the USB driver stack that is part of the new WDM-based architecture.

From an application perspective, any HID device can be accessed either through HID APIs exposed by Hid.dll, or through DirectInput COM methods. DirectInput, which is part of Microsoft's DirectX multimedia architecture, now includes support for HID devices.

Windows 98 also supports HID devices that connect to the system through ports or buses other than those of Hidusb.sys. For example, the IEEE 1394 bus can be developed and supplied by vendors. Vendors can also extend or modify the functionality or data of devices by inserting filter drivers into the USB or HID driver stacks.

For more information about minidriver and filter-driver development, see the WDM DDK.

Using DVD

DVD as an official product name is not an acronym. It is a branded, trademarked name owned by the DVD Consortium. As an acronym, DVD has various interpretations, including Digital Versatile Disc and Digital Video Disc, but these letters have come to represent more than just an acronym. As a natural enhancement of CD-ROM, DVD provides the new generation of optical-disc storage technology for a huge array of both consumer electronics and personal computer devices. DVD provides digital data storage that encompasses audio, video, and computer data, and therefore has the potential for replacing current technologies for business data storage, laser disc, audio CD and CD-ROM, VHS videotape, and dedicated game technologies. DVD was designed from the ground up for multimedia applications, with a key goal of being able to store a full-length feature movie.

The DVD Consortium has defined two major compression technologies, MPEG-2 and AC-3, to be used to store over two hours of video and audio on a single DVD disk. In addition, the quality of the stored video and audio is higher than that found on laser disks and CDs, opening up new possibilities for content providers.

Supporting DVD

Windows 98 supports DVD as follows:

DVD movie playback. If the proper decoding hardware or software is present, Windows 98 supports full DVD-Video playback This support is especially important for entertainment computers, but it is also important for any multimedia hardware platform meant to provide good quality support for the playback of movies. This support includes the full range of interactivity and high-quality playback found on a standard DVD-Video player. Because computers are capable of better image quality than television, DVD — on a computer running Windows 98 or Windows NT—can produce a better-quality image than standard DVD-Video player devices connected to a television set.

DVD as a storage device. On most computers that have Microsoft DVD support, DVD can work as a storage device. While most first-generation DVD-ROM drives do not read CD-R disks, all second-generation drives do. DVD-ROM discs and devices provide cost-effective storage for large data files. DVD-RAM drives are currently being shipped to computer dealers. Future plans include writable DVD devices, which will widen the range of options.

Figure 30.6 shows an implementation under the support architecture for existing DVD technologies under Windows 98.


Figure 30.6 Implementation of the DVD support architecture 

Advanced features of DVD include multi-angle, multiple audio tracks, and multiple subpicture tracks. For more information about DVD features, see Chapter 12, "Multimedia."

Note Some components in the DVD architecture will change based on advances in other hardware technologies, such as WDM support for the PCI bus under Windows 98. The only components that will always be present are the DVD-ROM driver, the Universal Disk Format (UDF) file system, the WDM Stream class driver, and the DVD Splitter/Navigator.

DVD Movie Playback

The following components comprise support for DVD movie playback under Windows 98:

DVD-ROM class driver. DVD-ROM has its own industry-defined command set, supported through an updated CD-ROM class driver. This driver provides the ability to read data sectors from a DVD-ROM drive.

UDF file system. Support for UDF ensures support for UDF-formatted DVD discs. UDF takes advantage of packet writing and is the industry standard for compact disc storage. As with FAT and FAT32, Windows 98 provides installable file systems for UDF.

WDM Stream class driver. The WDM Stream class driver supports streaming data types, and MPEG-2 and AC-3 hardware decoders. Hardware vendors have to write only a small amount of interface code in a minidriver to ensure that the specific features in their hardware are supported. This allows most DVD decoders to work without user intervention.

DirectShow. Microsoft DirectShow (formerly ActiveMovie) proxy filters and related support include a DVD Navigator/Splitter, proxy filters for video streams, a video mixer, and a video renderer. The proxy filters allow programs written to the DirectShow API to control kernel mode filters.

DirectDraw Hardware Abstraction Layer (HAL) with Video Port Extensions (VPE). Decoded video streams are huge—possibly too large even for the PCI bus on a computer. Manufacturers have solved this problem by creating dedicated buses to transfer decoded video streams from an MPEG-2 decoder to the display card. Microsoft provides software support for these interfaces using the DirectDraw HAL with VPE.

Copyright protection. Copyright protection for DVD is established when key sectors on a disk are encrypted (as with Macrovision), then decrypted before the sectors are decoded. Microsoft provides support for both software and hardware decrypters using a software module that enables authentication between the decoders and the DVD-ROM drives in a computer.

Regionalization. As part of the copyright protection scheme used for DVD, six worldwide regions have been set up by the DVD Consortium. Disks are playable on DVD devices in some or all of the regions according to regional codes set by the content creators. Microsoft provides software that responds to the regionalization codes as required by the DVD Consortium and as part of the decryption licenses.

DVDPlay. Microsoft provides a DVD movie playback application, which can be replaced with another DVD playback application written to DirectShow2.

The DVD-ROM Storage Device

Under Windows 98, DVD-ROM is simply a large storage medium, much like CD-ROM. To enable DVD-ROM as a read-only device, Microsoft provides support for DVD-ROM devices in Windows 98 and support for UDF as an installable file system. Using DVD-ROM device drivers, a DVD-ROM drive is treated as another peripheral, using industry-defined methods to access DVD disks and handle encrypted content.

Understanding DVD and Streaming Data

The streaming of data involves loading an application responsible for handling large amounts of data in a constant load, or stream, over time. The application never loads the data completely into memory; the data file is too large, and the operations on the data file are typically sequential. The best example of this for DVD is an MPEG-2 video stream. When a computer plays an MPEG-2 file, a program loads and streams the MPEG-2 data across the computer to be decoded and displayed. The data might enter and exit the host processor and bus of the computer several times during this process. In addition, an MPEG-2 stream starts out at approximately 5 to 10 Mbps. After the stream is decoded, the data transfer rate can easily exceed 100 Mbps. A single data stream this large can saturate and overwhelm a computer's PCI bus; this means an alternate path might be required for the raw, decoded video data.

A single stream demands a potentially large and constant load on a computer, over what could be considered a long time in computer terms. For DVD, the system must be able to independently manage and decode at least four separate streams:

  • MPEG-2 video 

  • AC-3 or MPEG-2 audio 

  • Subpicture 

  • Navigation 

This must be done so the streams are totally synchronized when they reach their final destinations, with no dropped frames or degraded video. This requires precision in load balancing, synchronization, and processing.

The WDM Stream class driver can deal with these problems because it is optimized to work with any devices that use streamed data. Such devices include those that encode data (for example, video capture devices), and those that decode data (for example, DVD hardware decoders that decode MPEG-2 streams for playing DVD movies). This class driver uses the WDM layered architecture for interconnecting device drivers to optimize data flow within the Windows 98 kernels.

Using Digital Audio

Because Windows 98 supports USB and the IEEE 1394 bus, it can support digital audio. USB and IEEE 1394 have the bandwidth necessary to support digital audio and have mechanisms to provide synchronization between an audio source and an audio sink. Both provide different forms of isochronous and asynchronous services that can be used by distributed audio systems.

Understanding How USB Supports Digital Audio

The following describes the attributes of USB that allow it to accommodate digital-audio devices.

Capacity. With a total transfer rate of 12 Mbps, USB has enough capacity for consumer audio but would be inappropriate for multitrack audio production. Unlike with IEEE 1394, adding nodes to a USB network does not add to the total data-carrying capacity of the network.

Synchronization. Although USB uses a 1-ms master clock for synchronization, the burden of synchronization is placed on the host computer. USB provides three modes of synchronization:

  • Asynchronous nodes have independent clocks. It is the responsibility of code in the host to add or delete samples to keep a source and sink synchronized. 

  • Synchronous nodes synchronize to the master clock in the host. Two synchronized nodes can talk to each other without host intervention. The host might have to perform sample rate conversions but can assume that clocks on both devices are synchronized relative to one another. 

  • Adaptive nodes derive their clock from the data stream. For example, in an Internet telephone conversation, the nominal data rate might be 8,000 samples per second, but the remote party's sound card might be running at 8,002 samples per second. Every millisecond the computer is expected to send eight samples to the local USB audio device, but because the remote device is sending data faster, the network telephony program can compensate by sending an extra sample every half second. Adaptive nodes can deal with this sort of variance without glitches.

Digital signal processing (DSP) capability. With USB, DSP must take place in the end nodes or in the host. For example, if a DVD drive and a home stereo were connected to a host, and the user wanted to play an AC-3 audio-encoded stream, the AC-3 decoding could take place in either the host or in the stereo set, but not in an intermediate DSP dongle (a device, attached to a computer's I/O port, that adds hardware capabilities). The USB requirement for DSP connection is in contrast with the IEEE 1394 bus requirement, in which DSPs can also be connected as interior members of the daisy-chain or tree.

USB device classes. If a device conforms to a defined USB device class, Plug and Play methods can be used to identify the device and load a device driver. This eliminates the need for device manufacturers to ship driver disks with their products.

Intel support. Intel built the USB host controller into the latest Triton chip set, which interfaces the Pentium processor to the PCI bus and motherboard. Because USB is a serial bus, having its controller as part of this chip set adds very few pins and adds negligible cost to the computer motherboard.

Intel also built the 82930 microcontroller into USB. This chip has all the logic necessary to interface with USB and send and receive data. Vendors can combine the standard USB code with code necessary to control their devices. The 82930 microcontroller can provide complete communications and control for consumer or industrial devices.

Appliances as computer peripherals with USB Open Standards. Windows 98 supports OpenHCI and UHCI. Detailed hardware descriptions of the USB interface have been published so that smaller companies can integrate USB into their custom chips without extensive design work.

Not only is USB designed for standard devices, such as joysticks, keyboards, printers, and mouse devices, but because of its low production cost and relatively simple implementation, USB enables a wide class of devices to become computer peripherals. For example, a postage meter containing microcontrollers can have a USB port added for a small increase in cost. Connected to a computer, the meter can become part of a company-wide cost-tracking system. Adding voice output to the postage meter for use by a blind operator requires connecting the postage meter to a computer containing USB audio hardware. A programmer can add audio by using application programming interfaces (APIs) under Windows 98.

If the postage meter conforms to the HID class, Plug and Play support ensures that the device is recognized as soon as it is plugged into the computer. When that occurs, Windows 98 loads in a device driver, configures the device, and makes it available to end-user software. This is particularly useful for telephones. A telephone is both an HID (the keypad) and an audio USB device. It might also include a conventional, ISDN, or high-speed cable modem. If a telephone answering/fax machine has a USB port, the device works fine on its own, but when plugged into a computer, it becomes a modem, a scanner, a printer, and a more intelligent answering machine.

Home entertainment. The home stereo system is another consumer device that already contains a microcontroller and can be easily upgraded to connect to a computer running Windows 98 with USB. Except for the audio data rates, a stereo system is not much different from a telephone with USB. When equipped with a USB interface, a stereo system becomes a USB audio class device and an HID-class device. The microcontroller inside a stereo system is not much different from the microcontroller inside a keyboard; the stereo system microcontroller spends most of its time polling buttons, waiting for the user to change the volume or tone controls.

IEEE 1394 Bus Support for Digital Audio

The following describes the attributes of the IEEE 1394 bus that allow it to accommodate digital-audio devices.

Capacity and synchronization. With the IEEE 1394 bus, it is possible to put a CD drive on one node and a digital-to-analog converter (DAC) on another node. The clocks of both devices can be slaved to the master clock on the bus. Because the IEEE 1394 bus is designed to handle video data (a transfer rate of 400 Mbps), handling multiple tracks of audio is a much simpler task. IEEE 1394 networks can be configured using multiple buses and filtering bridges in a leaf-node configuration so many devices can play in parallel without passing data over the same segment of the bus.

DSP capability. Arbitrary amounts of DSP power can be applied to streams of audio by means of IEEE 1394 dongles. DSPs inside a computer are limited by the total memory of the system and must compete with the CPU for this resource. On the IEEE 1394 bus, signals can be passed between nodes containing DSPs. Each DSP node increases delay to the processing time, but the IEEE 1394 bus can string many DSPs together.

Home entertainment. Microsoft is working with Sony, Yamaha, and Texas Instruments to define standards for home entertainment audio delivery over the IEEE 1394 bus. Microsoft is also working with OEMs and third-party software developers to make Windows 98 the best platform for delivery of multimedia content.

Overview of Multiple Display Support

Aside from continuing support of the conventional display features found in Windows 95, Windows 98 supports a new and important display feature called Multiple Display Support. The ability to run multiple applications on the computer has made screen space a precious commodity. It would be convenient to be able to view all your running applications at the same time and not have to keep clicking between windows. The costly solution is to use a very large (35-inch, for example) video monitor; a more economical and flexible solution is to connect two or more smaller monitors to the computer so that each application can be viewed on its own screen, or the entire desktop can be viewed across all the screens. The latter solution is the Multiple Display Support feature.

Multiple Display Support uses the concepts of a primary display and secondary display. For you to be able to use a monitor as a secondary monitor, it must meet certain criteria. It must be a PCI or AGP device, and it must be able to run in GUI mode or without using VGA resources. It must also have a Windows 98 driver that enables it to be a secondary display. For a list of these drivers, see "Technical Notes on Multiple Display," in Chapter 24, Device Management."

The system BIOS picks the primary VGA display based on the PCI slot order, unless the BIOS offers an option for picking which device is to be treated as the VGA device. Also, an important consideration for docking units is that the VGA device cannot be stopped.

As shown in Figure 30.7, Multiple Display Support allows the Windows 98 desktop to cover more than one monitor with no restrictions on size, position, resolution, or refresh rates. You can configure the system to the size and relative position of each monitor and move applications seamlessly from one monitor to another.


Figure 30.7 Example of Multiple Display Support 

On a single-monitor system, the actual desktop is the same size and shape as the only monitor on the system. On a Multiple Display Support system, each monitor is actually a view onto the underlying virtual desktop. You can use the Windows 98 Control Panel to set the area that each monitor presents. As shown in Figure 30.8, the primary monitor always has coordinates corresponding to 0,0 for the upper-left corner, and the x and y resolution for the lower-right corner. The actual coordinates viewed on the secondary monitors depend on the layout of the monitors, which you set using Control Panel. The layout of the secondary monitors is usually based on the physical layout of the monitors on the user's desk.


Figure 30.8 A virtual desktop containing three monitors 

You can use Control Panel to change the resolution of any of the monitors, but you can change only the coordinates of the secondary monitors. Although both the primary and the secondary monitors use a coordinate system, only the secondary monitors allow their position in the virtual desktop to be changed. The primary monitor's top-left coordinates must remain 0,0 for compatibility. In addition, all the monitors must touch each other on the virtual desktop. This restriction allows the system to maintain the illusion of a single, large desktop that you can seamlessly cross from one monitor to another. At no point do you lose track of the mouse as you move it between monitors.

You can attach up to nine monitors in a multiple display configuration. The coordinates for the second monitor continue from a starting position adjacent to the primary; the coordinates for the third monitor continue from a starting position adjacent to the second monitor, and so on. Since the desktop area that each monitor actually views must be adjacent to another monitor, the virtual desktop is the bounding rectangle of all rectangular areas that can be seen on all attached monitors. For example, if both the primary and secondary monitors have a resolution of 1024 x 768, then a secondary monitor attached to the right of the primary monitor has coordinates from (1024,0) to (2047,767).

If a monitor is not aligned on an axis with its adjacent monitor, or if there are monitors with different resolutions, some of the virtual desktop area might not have a monitor that views that area. For example, the system shown in Figure 30.9 has a 1024 x 768 primary monitor, and an 800 x 600 secondary monitor. The primary monitor has coordinates (0,0) to (1023,767), and the secondary monitor, which is attached to the left of the primary, has coordinates (-800,167) to (-1,767). This results in an area with coordinates from (-800,0) to (-1,167) that is not displayed on either monitor. Windows 98 will not let the user move the mouse into this area, but the area is included in the calculation of the virtual desktop. Therefore the virtual desktop for the example system has coordinates from (-800,0) to (1023,767).


Figure 30.9 Unviewed Virtual Desktop area with monitors of unequal resolution 

Supporting Smart Cards

A smart card is a small electronic device, approximately the size of a credit card, that contains an embedded integrated circuit. Smart cards are used for such tasks as storing medical records, storing digital cash, and generating network IDs.

The following is a list of system requirements for smart card support:

  • Windows 98 

  • At least 16 MB of RAM 

  • Up to 3 MB of free disk space 

  • Windows-compatible smart card reader and device driver 

  • ISO 7816-compliant smart card 

Windows 98 provides the necessary files to enable smart card–aware Windows applications and for service providers to communicate with smart cards through readers attached to Windows-based computers.

The base components on a CD-ROM require a device driver from a smart card reader manufacturer. No device drivers are currently included in Windows 98, but several companies have readers and device drivers available.

You also need a Smart Card Service Provider (SCSP) or Smart Card Cryptographic Provider (SCCP) to expose the services of a smart card to a Windows-based application. The service providers are distributed by the card supplier or issuer and pertain to non-cryptographic and cryptographic services.

Note To develop a device driver or service provider, you must obtain a licensed copy of the Smart Card DDK and Smart Card SDK.

To install the Microsoft smart card components
  1. From the \scard folder on the Windows 98 compact disk, double-click Setup.exe. 

  2. Restart your computer. 

    Install may replace the Advpack.dll system file. 

To uninstall the Microsoft smart card components
  1. Double-click Add/Remove Programs in the Control Panel. 

  2. Select Microsoft Smart Card Base Components, and then click Add/Remove

  3. Restart your computer. 

    The Smclib.sys and Smclib.vxd files, used by smart card reader drivers, are not removed during Uninstall, because device drivers that depend on these files to start and run may still be installed on the system. The files may be removed after all smart card reader device drivers have been removed. 

    The Msvcrt.dll and Mfc42.dll files are not removed by Uninstall, because they are shared resources. 

    The Advpack.dll system file is not removed by Uninstall. 

Supporting Still Image Devices

Windows 98 supports still image (STI) devices under the WDM architecture. An STI device requires that a minidriver of the WDM STI class be written. Current examples of STI devices are:

  • Flatbed scanners, including those with an automatic document feeder, transparency adapter, or other options, such as a start or scan button 

  • Sheet-fed scanners with paper-inserted detection mechanism 

  • Hand-held scanners 

  • STI digital cameras, including those with stored images and associated data (for example, thumbnails and audio) 

For more information about writing device drivers for Windows 98, see the Windows 98 DDK.

The STI architecture reduces the software investment made by a hardware vendor. It helps focus the vendor's work on designing device features rather than dealing with system-related tasks. Figure 30.10 illustrates the STI architecture.


Figure 30.10 STI architecture 

The following describes the components shown in Figure 30.10:

Application. Two primary types of applications use still images. One type is for the editing of image data. Examples of this type are Adobe PhotoShop and Microsoft PictureIt! The other type is for authoring documents that include image data, but that do not focus on editing that image data. Examples of this type are word processing and page layout applications, such as Microsoft Word, or a presentation application, such as Microsoft PowerPoint®.

Still Image APIs. TWAIN, ISIS, and Adobe Acquire are the common API interfaces in use today. Currently, a hardware vendor has to supply a device-specific component that implements a driver for each supported API.

Color Management. This interface and implementation maintains device color profiles and provides for color-space conversion. All color output from scanners must be defined. To accomplish this, a scanner must either create RGB output or embed the International Color Consortium (ICC) profile for the scanned image into the image file to identify the color-space information for that image.

Still Image Control Panel. In Windows 98, the Control Panel icon Scanners and Cameras gives you access to the following for installed STI devices:

  • Listing of the installed STI devices. 

  • Addition and removal of STI devices that are not Plug and Play. 

  • Test of the validation of a selected device. 

  • Vendor-specific configuration or control (by attaching property sheets). 

  • Control of the association between specific device events and applications to be notified of these events, to be used for the push-model support provided by the Still Image Event Monitor. 

The icon appears in Control Panel when Windows 98 detects a Plug and Play STI device, or when you install a non-Plug and Play, STI device through the Add New Hardware Wizard.

For more information about the Add New Hardware Wizard, see Chapter 24, "Device Management."

Still Image Event Monitor. This application (provided by Microsoft) supports push-model behavior by detecting events coming from installed STI devices, and dispatching a set of those events to an application. From Control Panel, you can configure which Still Image-compliant applications are invoked.

Still Image Device Driver Interface (DDI). This DDI (provided by Microsoft) is used to communicate with a particular device. The Still Image APIs, the Control Panel, and the Event Monitor use the Still Image DDI. This DDI uses the color management system as a repository for the color profile supplied for a specific device. The DDI provides interfaces for the following:

  • Enumeration 

  • Device information (primitive capabilities and status) 

  • Test activation 

  • Data and command I/O 

  • Notification for device events, including polling for device activity 

  • Retrieval of an ICM color profile and other auxiliary information associated with a device 

User-Mode minidrivers. These vendor-written modules are small components used to implement device-specific DDI functionality (test, status, and data I/O).

Still Image kernel-mode drivers. These Microsoft-provided modules package a command or data for delivery on a specific bus type. All new kernel-mode drivers provided by Microsoft are WDM-based, although kernel-mode drivers generally need not be. Vendors must supply their own kernel-mode drivers for devices that are not designed to use the standard Microsoft kernel-mode drivers for a specific bus. Currently, kernel mode drivers for SCSI and USB are provided specific to still image devices.

Bus drivers. These Microsoft-provided modules are used to communicate with the STI device. Examples are the USB driver stack, serial-port drivers, and parallel-port drivers.

Supporting Video Capture

Video Capture under Windows 98 is based on the WDM Stream class driver. Windows 98 provides minidrivers for USB and IEEE 1394 cameras, as well as PCI and videoport analog video devices. Support includes DirectShow filters for WDM video-capture interfaces, and for backward compatibility, a Video for Windows (VFW)-to-Stream class mapper. The mapper currently works only with the USB and 1394 digital cameras, and not with the PCI or videoport analog video devices.

Capture applications have been developed using both DirectShow and VFW. Newer capture and conferencing applications are expected to migrate to using the DirectShow interfaces. A sample DirectShow capture application (Amcap.exe) is included in the DirectShow SDK.

Vidcap32.exe is a sample VFW capture application included in the Win32 SDK. It allows you to capture video sequences and images from a VCR, videodisc player, or video camera. Video Capture provides two modes for capturing video sequences:

  • Real-time capture

  • Step-frame capture

Using Real-Time Capture

Real-time capture processes a video sequence and audio as the events occur naturally or as the video source plays without interruption. A video source for real-time capture (such as a video camera or videodisc) provides an uninterrupted stream of information to the capture hardware. The capture hardware copies each frame of the video sequence (and each portion of audio) and transfers it to the hard disk before the next frame of data enters the capture hardware. A video frame contains one image of the video sequence.

Real-time capture demands a fast computer and hard disk. The computer must process and store each incoming video frame before the next frame is received in the capture board. If the system lags during capture, frames of video data are lost.

Using Step-Frame Capture

Step-frame capture pauses the video source as it collects each frame (image) of data. If audio is also selected, this capture mode rewinds the media in the video source and collects audio data as the video source plays a second time. Step-frame capture collects video frames from a video sequence in a series of steps. Frames are captured one at a time, generally from a paused video device. You can perform step-frame capture manually, advancing the video source using the controls on the video device. Video Capture also provides automatic step-frame capture for video devices that support the Media Control Interface (MCI). With this method, Video Capture issues frame-advance commands to the source device and captures the sequence frame-by-frame. When Video Capture finishes capturing the current frame, it advances the video source to the next capture point.

Step-frame capture provides an alternative for systems that cannot process a video sequence in real time. Because the system can fully process a video frame before contending with the next frame, you can use larger frame sizes and color formats, and you can optionally compress the video sequence during capture. When a step-frame capture is complete, you can capture the audio segment associated with the video frames by playing the source video a second time.

For more information about configuring and using Video Capture, see the Help file Vidcap.hlp included in the Windows 98 SDK.

Supporting Accelerated Graphics Port

Windows 98 supports Accelerated Graphics Port (AGP), a high-performance, component-level interconnect for 3-D graphics applications. Microsoft provides code in Windows 98 that enumerates and initializes devices on the AGP bus. Windows 98 is also responsible for initializing the AGP hardware and managing the mapping from system memory to the video hardware address space. This support is mostly behind the scenes and is not directly accessible to applications programmers. The AGP functionality can be incorporated into applications through the Microsoft DirectDraw API.

Through a hardware-capability bit, DirectDraw allows a graphics driver to indicate that it supports AGP. A DirectDraw driver can specify one or more video memory heaps to DirectDraw that describe how it can address AGP memory. A DirectDraw-based application can specify whether it wants a surface allocated in local video memory, non-local video memory, or system memory. If none of these is specified, DirectDraw chooses the memory class for the surface, and the application can query to find out where the surface was allocated.

AGP allows the graphics processor to see system memory by using the Graphics Address Relocation Table (GART). The GART takes all the virtual pages and makes them look like a contiguous region of memory to the graphics accelerator. The CRTC on the display card does not see the GART.

There are two type of GART memory: Uncached and Write Combined. The data is written straight through to memory for Uncached memory. Multiple writes are combined in a buffer for Write Combined memory. This buffer is controlled by the memory management unit. The advantage of Write Combined is that it is a lot faster to transfer (for example, eight DWORDS at a time as opposed to one DWORD at a time).

In Windows 98, the GART is split evenly between Uncached and Write Combined. The maximum size of the GART is controlled by the BIOS. Some BIOSs allow the AGP aperture (maximum size) to be set. The Graphics Processor can use the GART for texture memory.

Supporting Wireless Connectivity

Windows 98 provides support for IrDA, the Infrared Data Association standard for wireless connectivity. IrDA support allows Windows 98 users to connect hardware devices and other computers easily without using connecting cables. This driver set provides infrared-equipped portable or desktop computers with the ability to network, transfer files, and print wirelessly with other IrDA-compatible infrared devices. For example, the user of an IrDA-equipped portable computer can simply walk up to an IrDA-equipped printer, aim the computer at the printer (in the same manner as aiming a TV remote control at a TV), and run the print function. Another example is a user copying a file from one portable computer to another by aiming the first computer at the other and then running the copy function.

Supporting Hardware Profiles

Hardware Profiles are used to set up multiple hardware configurations. This is especially useful for portable computers that have docking stations or workstations with removable storage media.

Hardware Profiles are automatically created for portable computers when the system is docked or undocked. Furthermore, a new hardware profile would be created if the computer is placed in a different docking station.

The following procedures demonstrate how to set up hardware profiles for a portable computer with a docking station that has this configuration:




Display driver




Microsoft Network




With RNA

To set systems properties
  1. Click My Computer. 

  2. Click Properties, and then click the Hardware Profiles tab. 

  3. Verify that two hardware profile options labeled Docked and Undocked exist. If these options are not available, highlight Original Configuration, and then click Rename. Type DOCKED and then click OK. Highlight the word DOCKED and then click Copy. In the Copy Profile dialog box type UNDOCKED

To set up the video driver for docked and undocked configurations
  1. Verify that VGA is installed. If it is not installed, in Control Panel double-click Display. Click the Settings tab, and then click Advanced. Click the Adapter tab, click Change, and then install the VGA driver. 

  2. In Control Panel, double-click System, and then click the Device Manager tab. 

  3. Double-click Display Adapter, and then double-click VGA.

  4. In the Device Usage area, make sure Undocked is checked and Docked is unchecked. Click OK

  5. In the Device Manager tab, double-click Display Adapter, and then double-click the S3 adapter. 

  6. In the Device Usage area, make sure the Docked option is checked and the Undocked option is unchecked. Click OK

To set up for no network in an undocked state
  1. In Control Panel, double-click System, and then click the Device Manager tab. 

  2. Double-click Network Adapter, and then double-click the network card.

  3. In the Device Usage area of the General tab, click the Disable in this hardware profile box.

  4. Click OK

To set up for no RNA while docked
  1. In Control Panel, double-click System, and then click the Device Manager tab. 

  2. Double-click Network Adapters, and then double-click Dial-up Adapter

  3. Click the Disable in this hardware profile box. 

Tip Windows 98 scans for floppy drives on each boot, which is helpful for portable computers and other computers where the floppy can be removed. If you are on a desktop with a stationary floppy drive, you can turn this option off to speed up boot time.

  1. In Control Panel, click System, and then click the Performance tab. 

  2. Click File System, and then click the Floppy Disk tab. 

  3. Uncheck the box next to Search for new floppy disk drives each time your computer starts

  4. Click OK.

Overview of Power Management

Cc768200.spacer(en-us,TechNet.10).gif Cc768200.spacer(en-us,TechNet.10).gif

An evolution in computer power management is taking place because of the advent of the Simply Interactive PC (SIPC), a Microsoft initiative to create a computer that never needs to be serviced by the user and is as simple to use as any household appliance. This new computer is instantly available to the user because it uses power management to keep the machine in a low power state when it is not being used rather than turning all the way off (thus avoiding lengthy boot times).

For more information about SIPC, see .

Windows 98 directs power management through the OnNow system. Unlike previous approaches to power management, OnNow manages power for the entire system including all system devices and peripherals. To make this possible, the operating system must direct power to the computer.

With legacy power management architectures, the BIOS controls the power state of system devices. However, OnNow makes it possible for the operating system to coordinate power management activities at all levels and define the power-state transitions for the system.

Computer power management means there is control over how the computer consumes energy and integrates its components. For example, a running application, or mouse, keyboard, or joystick activity, prompts the power management system that the computer is in use. The power management system then allows the computer full power, Otherwise, the power management system drops the computer to a sleep state. Another example is a fax modem, which does not need to use full power all the time. The fax modem can operate in a "standby" state, consuming less energy until it has to receive an incoming fax, at which time it is given full power. This section describes how Windows 98 supports power management.

Understanding How OnNow Works

With OnNow power management, the computer functions as follows:

  • The computer is ready for immediate use when the user presses the power button. 

  • The computer appears to be off when not in use, but can still respond to wakeup events. In other words, the computer seems off according to what users hear and see; they have confidence that the computer is not consuming excess energy, and that data and programs are reliably saved. Wakeup events might be triggered by a device receiving some input, such as a telephone ringing, or by software that requests the computer to wake up at a predetermined time (for example, to download your e-mail so it is ready when you wake up in the morning). 

  • Software adjusts its behavior when the power state of the computer changes. The operating system and applications work together intelligently to operate the computer, to deliver effective power management according to the user's current needs and expectations. For example, applications do not keep the computer busy unnecessarily; instead, they proactively participate in shutting down the computer to conserve energy and reduce noise.

  • All devices participate in the power management scheme, whether originally installed in the computer or added later by the user. Any new device can have its power state changed as system use dictates. 

Figure 30.11 shows the components of the OnNow system.


Figure 30.11 OnNow system components 

Note Applications developed before the advent of OnNow were designed to assume that the computer is always fully powered while the application is running. Such applications can inadvertently keep the system from entering a lower power state. In addition, these applications can crash when the computer wakes up, either after time has passed or after devices have been removed.

Though Windows 98 performs most of the work for OnNow, applications have to be designed for OnNow power management and Plug and Play to make the entire process seamless.

The goal of the operating system is to conserve energy while the computer is working and to put the computer to sleep when it is not working. The decisions that determine how to save energy and when to go to sleep are referred to as the power policy. In OnNow, power policy is based on the end user's preferences, the application requirements, and the system hardware capabilities. The implementation of power policy is distributed throughout the system, with different system components acting as policy owners for different aspects. For example, the operating system itself is the policy owner responsible for when the computer should go to sleep, how deep a sleep the computer should go into, and how to operate the processor to obtain energy conservation, and to meet thermal and audible noise goals.

There is also a policy owner for each device class in the computer. The policy owner for a particular device class is the component that knows how the device is used by the end user and the applications. This is generally a high-level component and in most cases a WDM class driver. Each policy owner has to make appropriate power management decisions for its class and work consistently with the operating system's policy for putting the computer to sleep.

Carrying out power policy — actually controlling devices so power consumption or capabilities change — is not the concern of the policy owner. Responsibility for this power control is given to the device drivers for the affected device and is shared among the drivers in the stack. Device-specific drivers or minidrivers are responsible for saving and restoring the device's settings (context) across low-power state transitions. Bus drivers are responsible for giving the actual hardware command to the device to change state. When the policy owner makes the decision to enter a low-power state and communicates it to the device driver through the system, the device driver saves context and then sends the request to the bus driver. This gives the hardware command to the device to enter the low-power state. When the device is to be powered-up, the same sequence occurs in reverse; the bus driver turns on the device, and the device-specific driver restores the saved context.

Understanding Advanced Configuration and Power Interface

For the OnNow system to be successful, Windows 98 must be aware of how power management features integrate throughout the computer. This is done through the OnNow feature known as the Advanced Configuration and Power Interface (ACPI), a system interface that provides a standard way to control power management and Plug and Play functions of the computer hardware. ACPI allows the motherboard to describe its device configuration and power control hardware interface to Windows 98; this allows the operating system to automatically turn on and off standard devices, such as CD-ROMs, network cards, hard disk drives, and printers, as well as consumer devices connected to the computer, such as VCRs, TVs, phones, and stereos.

For a complete OnNow system, the system BIOS must support ACPI. The BIOS plays an important role in the ACPI by working with Windows 98 in performing the necessary initialization processing and handoff during boot and when resuming the working (full power) state.

Figure 30.12 is an overview of the ACPI.


Figure 30.12 Overview of the ACPI 

Note With legacy BIOS, the power management features in Windows 98 function, but the legacy BIOS must control power management.

The ACPI specification, currently in version 1.0, has two parts: configuration (Plug and Play), and power management. ACPI gives Windows 98 and the device drivers all power management decision making. The BIOS simply provides Windows 98 with access to the hardware controls for controlling power in the system. Windows 98 and the device drivers, which already know when the system is active, decide when to turn off devices that are not in use and when to put the entire system to sleep.

Since power management is controlled by the operating system, there is a single user interface for managing power that works on all ACPI computers and simplifies the experience for the end user. ACPI provides more detailed knowledge to the operating system about what the system can do and what are the sources of events.

For example, the ACPI computer and operating system can do the following:

  • Make sure the screen does not turn off in the middle of a presentation. 

  • Let the machine wake automatically in the middle of the night to perform some task, yet not turn on the monitor and drives needlessly. 

  • Let the user choose what the power and sleep buttons do in the system. 

During Windows 98 Setup, ACPI is installed only on systems that are listed on the retail compact disc as good ACPI systems. However, if you have had the system BIOS updated to a fully functioning ACPI BIOS, you can have ACPI installed by using the following procedure.

To install ACPI
  1. Flash the BIOS to the latest rev. 

  2. Run Regedit. 

    Under HKEY_LOCAL_MACHINE \Software \Microsoft \Windows \CurrentVersion \Detect, add a String value called ACPIOption, and set it to 1. 

  3. In Control Panel, click Add/Remove Hardware and have it run full detection. 

To remove ACPI support, perform steps 1 through 3, but set ACPIOption to 2. The settings for ACPIOption are as follows:

0 (or not present) – Detect only ACPI BIOSs on good list.

1 – Detect any ACPI BIOS.

2 – Do not detect ACPI BIOSs (remove support if installed).

Alternatively, you can enable ACPI support at setup time using the following command line:

setup /p J
Understanding Advanced Power Management

In contrast to ACPI, there is the Advanced Power Management (APM) BIOS specification, which is currently in version 1.2. Under APM, the BIOS controls system power management. The BIOS has timers that monitor most interrupts, and I/O port reads and writes. When the timer for a device exceeds some value set in the BIOS setup, the BIOS turns off the device. When the system-wide timer exceeds some value set in the BIOS, the BIOS sends a message to Windows 98 to put the computer to sleep. Windows 98 then prepares to suspend the computer and tells the BIOS to do so.

The APM BIOS is also responsible for monitoring the battery status and requesting a suspend if the battery is getting low.

However, the following limitations exist with APM.

Different user interfaces. Each BIOS has its own user interface and its own power management behavior. This means every computer operates differently—users have to be retrained on each computer.

Reasons for suspend are not known. Because of the architecture of the APM BIOS interface, the APM BIOS cannot inform Windows 98 that the request is due to the user pushing a sleep button, the BIOS assuming the system is idle, or the battery running out of power. So Windows 98 must always honor this suspend request and attempt to put the computer to sleep—even if the computer is not idle. It is recommended that users turn off all their BIOS timeout settings.

Devices might be turned off at inappropriate times. By monitoring I/O ports and interrupts, the BIOS is essentially trying to second-guess what the user and the applications are doing. Although this often works, there are many scenarios in which the BIOS can guess incorrectly. For example, the BIOS turns off or slows down a computer in use (such as a screen saver turning on in the middle of a presentation), or the BIOS does not turn off a truly idle computer.

No system capabilities information on APM 1.0 or 1.1 BIOS. With these older versions of the APM BIOS specification, the only way to determine if the computer-supported standby was for the operating system is to try putting it in standby. Not only did some BIOSs not implement standby, but they crashed when the operating system called the BIOS. APM 1.2 provides a way to determine if standby is supported, and the operating system uses standby only if the computer supports it.

The BIOS detects activity only on devices residing on the motherboard. The BIOS cannot detect devices, such as add-in cards, USB devices, and IEEE 1394 devices. As a result, the BIOS might think that the system is not in use even if one or more of these off-motherboard devices is in use.

For more information about how your computer's BIOS supports ACPI and APM, see the MSInfo utility that ships with Windows 98.

Supporting OnNow Through WDM

In addition to providing a common set of I/O services and device drivers for Windows 98 and future versions of Windows NT, WDM includes support of OnNow power management.

WDM drivers can implement power policy and control. Device Driver Interfaces (DDIs) are defined to synchronize power-state changes with other power management activities in the system, and to detect idle devices. I/O request packets (IRPs) set the power state, enable wakeup, and query power status. Power policy decisions generally result in the kernel sending an IRP to a specific system component (often the policy owner itself) to affect a particular power management control.

For more information about WDM, see "Understanding WDM," earlier in this chapter.

Using the OnNow Interface

Windows 98 allows you to monitor OnNow features and set power management options called Power Schemes using the Power Management icon in Control Panel.

OnNow includes the following features for Power Management:

The ability to start using the system in just a few seconds by using Standby instead of Off. While on standby, your monitor and hard disks turn off, and your computer uses less power. When you want to use the computer again, it comes out of standby quickly. Standby is particularly useful for conserving battery power in portable computers. ACPI machines have a power/sleep feature that you can access from the front of the computer or from the operating system.

The ability for the system to put itself in standby automatically when not in use. 

The ability for the system to automatically wake to handle events, such as running backups, downloading e-mail, and defragmenting your hard disk. This is done through the Task Scheduler. For more information, see Chapter 23, " System and Remote Administration Tools."

A simplified, single-user interface for power management. This includes a new battery meter, low battery alarms, power control panel, Hibernate, and Standby on the shutdown menu.

Enhanced application messaging to allow applications to adjust their behavior appropriately for changes in battery state. 

Note To use Power Management, you must have a computer that is set up by the manufacturer to support these features. For more information, see your computer documentation.

Windows 98 provides power schemes that configure the system to go on standby, and the monitor to shut off after predetermined periods of system inactivity.

The following set of power schemes is built into Windows 98:

Home/Office Desk. For desktop machines. This scheme is installed with Typical/Compact/Custom Setup options.

Portable/Laptop. Optimized for portable computers. This scheme includes aggressive settings for running on batteries (the AC settings are the same as desktop), and is installed with Typical/Compact/Custom/Portable Setup options.

Always On. For use with personal servers. This scheme is similar to Home/Office, but has the standby timer disabled and hard disk timer increased. It is installed when you install a server and is the default for APM desktop computers.

If none of the built-in schemes is appropriate, you can change the properties of a built-in scheme or create an entirely new scheme through the Power Management Properties dialog box.

Note If you want to set up a power scheme that configures automatically on power-up, you need to write a script within Msbatch.inf. See Appendix D, "Msbatch.inf Parameters for Setup Scripts," and Chapter 2, "Setting Up Windows 98."

Using Power Management for the Desktop

Using the Power Management features for the desktop, you can create a power scheme and display the power meter on the taskbar. The power scheme will turn off your monitor after a specified length of time of inactivity. You can choose from three preset Power Management configurations: Home/Office Desk, Portable/Laptop, and Always On.


To change the properties of an existing power scheme
  1. In Control Panel, click Power Management. The Power Management Properties dialog box is displayed. Make sure the Power Schemes tab is active. 

  2. Select the power scheme from the Power Schemes menu. 

  3. Select the desired time setting for Turn off monitor, and then click Apply

To create a new power scheme
  1. In Control Panel, click Power Management. The Power Management Properties dialog box is displayed. Make sure the Power Schemes tab is active. 

  2. Select the power scheme from the Power Schemes menu. 

  3. Select the desired time setting for Turn off monitor. 

  4. Click Save As. When prompted, provide a name for the new power scheme. Click OK

The Advanced tab lets you control the System Tray icon. Right-click the taskbar icon to see the status of the power meter, and click the icon to change the power scheme on the fly.

To add the power meter to the system tray
  1. Click the Advanced tab.

  2. Select the Show power meter on taskbar check box. 

  3. Click Apply

If your computer supports these options, you can use the Advanced tab to make your computer go into Standby or Shutdown mode by pressing the power button or closing the lid.

To use the Power Management power buttons
  1. Click the Advanced tab.

  2. Click the When I press the power button on my computer list box, and then click Standby or Shutdown

  3. Click OK

Some ACPI computers support a feature called Hibernate, which saves everything in your computer memory to your hard disk. You would put your computer into Hibernate when you are away from your computer for an extended time or overnight. When you turn your computer back on, all programs and documents that were open when you turned the computer off are quickly restored to the desktop.

Note To use Hibernate, you must have a computer that is set up by the manufacturer to support this option. If the Hibernate tab is not displayed in Power Management, your computer does not support this feature.

To use the Hibernate feature
  1. Click the Hibernate tab, select the check box, and then click the Advanced tab. 

  2. Click When I press the power button on my computer, and then click Hibernate

  3. Click OK, and either press the power button. 

Using Power Management for Portable Computers

In addition to the tabs provided for the desktop, Power Management for portable computers includes the Alarms and Battery Meter tabs. A major difference between power management for desktop and portable computers is that you can change settings based on battery use for a portable computer.


System Standby can reduce the power consumption of your computer. Depending on whether your computer is plugged in or running on batteries, you can choose a different length of time for the computer to go into standby. The time specifies the length of time that your computer is inactive before it going into standby mode.

You can change the properties of an existing power scheme or create a new power scheme using Power Schemes. Select a power scheme that works best with the way you use your computer. You can choose from three preset Power Management configurations: Home/Office Desk, Portable/Laptop, and Always On. You can also set suspend time for Energy Start–compliant monitors and the IDE hard drive spin down time.

To change the properties of an existing power scheme
  1. In Control Panel, click Power Management. The Power Management Properties dialog box is displayed. Make sure the Power Schemes tab is active. 

  2. Select the power scheme from the Power Schemes menu. 

  3. Select desired time setting for System Standby, Turn off monitor, or Turn off hard disk, and then click Apply

To create a new power scheme
  1. In Control Panel, click Power Management. The Power Management Properties dialog box is displayed. Make sure the Power Schemes tab is active. 

  2. Select the power scheme from the Power Schemes menu. 

  3. Select the desired time setting for either the Turn off monitor option, the Standby option, or the Hard Disk option. If desired, set other options. 

  4. Click Save As. When prompted, provide a name for the new power scheme. Click OK

To change the elapsed time before your hard disk automatically turns off
  1. In Control Panel, click Power Management. 

  2. In Turn off hard disks, click the arrows, and then select the times you want. 

  3. Click OK

To change the elapsed time before your monitor automatically turns off
  1. In Control Panel, click Power Management. 

  2. In Turn off monitor, click the arrows, and then select the times you want. 

  3. Click OK

The Alarms tab lets you set a low battery alarm and a critical battery alarm. You can set the type of notification — an audible alarm or a displayed message — when your battery drops to the levels you specify. You can also specify whether the computer goes on standby or shuts down when the alarm sounds or a message is displayed.

Note The critical batter alarm level must be less than the low battery alarm.

To set the battery alarms
  1. In the Power Management Properties dialog box, click the Alarms tab. 

  2. Select the Set off low batter alarm when power level reaches check box or the Set off critical battery alarm when power level reaches check box. 

  3. Drag the slider to change the battery level at which a low-battery alarm or message is activated. 

  4. Click Alarm Action, and then click either the Sound Alarm or the Display Message box, or both. 

  5. Click the When the alarm goes off the computer will box to display the list. You can specify that your computer immediately goes in standby or shuts down when the alarm sounds or a message is displayed. 

  6. Click the Force standby or shutdown even if a program stops responding box if you want the computer to go into standby or shut down even if a program is not responding. 

  7. Click OK, and then click OK again. 

The Power Meter tab shows the current source of power and displays the percentage of power level remaining for all the batteries in your computer.

To check the power level of the batteries
  1. In Power Management Properties dialog box, click the Power Meter tab. 

  2. Click the Show Details for each battery box to display the power level for each battery. 

  3. Click an individual battery icon for more information about each battery. 

  4. Click OK

You can display the power meter icon on the taskbar using the Advanced tab. Right-click the power meter icon on the taskbar to get the status and other details of each battery, and click the icon to change Power Schemes on-the-fly.

To show the battery meter on the system taskbar
  1. Click the Advanced tab.

  2. Check the Show battery meter on taskbar box. 

  3. Click OK

You can choose to be prompted for a password when the computer goes out of standby using the Advanced tab.

To be prompted for a password when the computer goes out of standby
  1. Click the Advanced tab. 

  2. Click the Prompt for password when computer goes off standby box (the password is the same as the screen saver password). 

  3. Click OK

If your computer supports these options, you can use the Advanced tab to make your computer go into Standby or Shutdown mode by pressing the power button or closing the lid.

To use the Power Management power buttons
  1. Click the Advanced tab.

  2. Click the When I close the lid of my portable computer list box, and then click Standby or Shutdown

  3. Click the When I press the power button on my computer list box, and then click Standby or Shutdown

  4. Click OK

Some ACPI computers support a feature called Hibernate, which saves everything in your computer memory to your hard disk. You would put your computer into Hibernate when you are away from your computer for an extended time or overnight. When you turn your computer back on, all programs and documents that were open when you turned the computer off are quickly restored to the desktop.

Note To use Hibernate, you must have a computer that is set up by the manufacturer to support this option. If the Hibernate tab is not displayed in Power Management, your computer does not support this feature.

To use the Hibernate feature
  1. Click the Hibernate tab, select the check box, and then click the Advanced tab. 

  2. Click When I press the power button on my computer, and then click Hibernate

    – Or – 

    Click When I close the lid of my computer, and then click Hibernate

  3. Click OK, and either press the power button or close the lid of the computer, depending on which feature you selected. 

Troubleshooting Hardware Management Components

Cc768200.spacer(en-us,TechNet.10).gif Cc768200.spacer(en-us,TechNet.10).gif

This section contains troubleshooting examples for the Windows 98 hardware management components.

Troubleshooting WDM

Most WDM troubleshooting involves the writing of WDM drivers.

For more information about troubleshooting WDM drivers, see the WDM DDK.

Troubleshooting System Buses

This section contains procedures for troubleshooting the system buses supported by Windows 98.

Troubleshooting USB

Because of the nature of USB devices, no resource settings could cause a USB device to function improperly or fail.

To resolve problems with USB speakers
  • Most speakers are available in two modes: digital and audio. If you are using USB speakers and not getting any output, make sure the speakers are in digital mode. 

To resolve most other problems involving a USB device
  1. Check the host-controller firmware revision by viewing the host controller's properties in Device Manager. The General tab lists the hardware version of the host controller. A version number of 000 indicates that the controller is using the A-1 stepping chip, which is not supported. Contact the original equipment manufacturer (OEM) for an upgraded host controller. 

  2. If only one device is failing, reconnect that device to another USB port. If the device works, the original port is faulty and should be repaired. If the device does not work when connected to the new port, more than likely the device is faulty and should be repaired or replaced. 

  3. If the device is bus-powered, it could be drawing too much current to function when connected to a hub port. Connect the device directly to the host controller, bypassing any hubs. 

    If the bus configuration is multi-tiered, make sure the configuration adheres to the following guidelines:

    • A bus-powered hub cannot be connected to another bus-powered hub. 

    • Bus-powered hubs cannot support more than four downstream ports. 

    • Bus-powered hubs cannot support bus-powered devices that draw more than 100 mA. 

    • The bus cannot exceed five tiers. 

  4. Remove the USB host controller from Device Manager and restart the computer. This allows Windows 98 to redetect and reinstall the entire bus. 

Troubleshooting the IEEE 1394 Bus

If you are trying to connect two computers together on the IEEE 1394 bus, make sure you use the correct cable. This cable is not supplied with the bus and must be purchased separately.

Troubleshooting Hardware Devices

The following sections describe how to troubleshoot problems when installing hardware device drivers.

Resolving Fatal Exception Errors

If a Fatal Exception error occurs after you install a WDM driver for a hardware device, the device is most likely expecting a specific driver to be installed. To help you correct this error, the device manufacturer usually provides the specific driver on the installation disk.

Determining if a Hardware Device Is Using a WDM Driver

To find out if a hardware device uses a WDM driver, you can use Device Manager or the Microsoft System Information tool (MSInfo).

To use Device Manager
  1. Right-click My Computer on the Windows 98 desktop and click Properties

    – Or – 

    In Control Panel, click System. 

  2. In the System Properties dialog box, click the Device Manager tab. 

  3. Double-click the device name. From the device Properties dialog box, click the Driver tab. 

  4. Click Driver File Details. The Driver File Details box lists the device driver's file name. If the file name has a .sys extension, the driver is a WDM driver. 

To use MSInfo
  1. Use the Find File utility to locate and run Msinfo32.exe. 

  2. In the left pane of the Microsoft Information window, expand Components to find the device in question.

  3. In the right pane, locate the device driver's file name. If the file name has a .sys extension, the driver is a WDM driver. 

For more information about how to use the Windows 98 Device Manager, see Chapter 24, "Device Management."

For more information about MSInfo, see MSInfo Help.

Troubleshooting the OnNow System

Windows 98 troubleshooting techniques are continually being updated. For the latest information, see the Windows 98 Resource Kit Tools Help.

The following shows possible causes of common problems, and ways to resolve them.

Timers are idle. 

If System standby, Turn off monitor, or Turn off hard disks is inaccurate or nonfunctional, the causes could be:

  • An open application is keeping the computer from going on standby to protect data. 

  • An open application is performing periodic disk access. 

  • The BIOS settings are overriding the Windows timers. 

  • Hard disk spindown timers do not function with SCSI drives. 

Try the following:

  • Close all applications. 

  • Press CTRL+ALT+DEL, , and then close all tasks except Explorer and Systray

  • Check the BIOS settings. If they are greater than the Windows timer settings, try making them less. For example, if the Windows monitor shutdown timer is set to 15 minutes, and the BIOS monitor shutdown timer is set to 2 hours, try changing the BIOS timer to 10 minutes. If the BIOS timer appears to be overriding the Windows timers, contact the hardware vendor for a BIOS update. 

The computer is being placed on standby erroneously. 

A possible cause is the BIOS settings overriding the Windows timer settings.

Try the following:

  • Check the BIOS settings. If they are less than the Windows timer settings, try making them greater. For example, if the Windows standby timer is set to never and the BIOS suspend timer is set to 15 minutes, try changing the BIOS timer to never suspend. If the BIOS timer appears to be overriding the Windows timers, contact the hardware vendor for a BIOS update. 

The computer appears to stop responding while in standby mode. 

Note To determine whether the problem lies in standby mode, the shutdown of the monitor, or the shutdown of the hard disks, set two of the three options to Never and the third to its original setting. Allow the timeout to occur, and determine whether the system appears to have stopped responding. Isolate the failure by trying each of the three combinations, first testing the monitor timer, then the hard disk timer, and then the system standby timer.

The system appears to stop responding after turning off the monitor. 

The causes could be:

  • The system is responding, but the display is not properly reinitializing. 

  • The display adapter does not fully support the calls made from Windows to turn off the display. 

Try the following:

  • While the display is off, move the mouse or press a key on the keyboard to try turning it back on. If this fails, perform the following keystrokes: 





    If the system is working, but the display is simply not properly initializing, this will cause the system to look for a floppy disk in the a: drive. Check for disk activity in this drive. 

  • Contact your hardware vendor for more information. 

The system appears to stop responding after shutting off the hard disks. 

Contact your hardware manufacturer for more information.

The hard disk does not support spindown functionality or is malfunctioning. 

Contact your hardware manufacturer for more information.

The system appears to stop responding while in standby mode. 

The causes could be:

  • The system is responding, but the display is not properly reinitializing. 

  • An application or driver is allowing the system to go on standby but is causing the system to stop responding. 

  • The BIOS is causing the system to stop responding. 

Try the following:

  • See the response to "The system appears to stop responding after turning off the monitor" section earlier in this chapter. 

  • Close all applications. Press CTRL+ALT+DEL, and end all tasks except Explorer and Systray. Try uninstalling third-party system management programs, such as crash protectors, memory managers, and performance enhancement utilities. 

  • Try disabling all devices in Device Manager except the display adapter(s), the mouse, anything under the USB Devices category (if you have either a USB keyboard or a USB mouse), and anything under the System Devices category. Reboot the computer. If the system goes on standby successfully, re-enable one half of the currently disabled devices. Reboot again. If the system continues to go on standby successfully, re-enable half of the remaining disabled devices. Otherwise, disable the devices you just re-enabled, and re-enable the devices that were disabled. Continue in this manner until the offending device has been pinpointed. 

Additional Resources 

For more information about

See this resource

For all hardware management issues, including:
Hardware device support details, including HID, DirectX, DirectDraw, digital audio, HAL, STI, AGP, and Multiple Display Support
Hardware development
OnNow, SIPC, WDM working with OnNow, ACPI, APM, OnNow device power states, PC 97, PC 98, NDIS, and networking specifications  

HID class, IEEE 1394 bus driver, Port class, STI, USB driver, and WDM Stream class video capture minidriver

Windows 98 Device Driver Kit (DDK) Help

Writing WDM class drivers
WDM Kernel
Troubleshooting WDM
DDI and writing device drivers for Windows 98

Win32 Driver Model Device Driver Kit (WDM DDK) and Windows 98 DDK


Configuring and using Video Capture

Windows 98 Software Development Kit Help


Computer hardware design
Designing the following for the computer:
CardBus, IEEE 1394, PC Card, PCI, and USB

PC97 Hardware Design Guide, Microsoft Press, 1997

Device drivers in your system
BIOS support for ACPI and APM

The MSInfo utility

IEEE 1394 standards  

The latest troubleshooting techniques

Windows 98 Resource Kit compact disc