Chapter 26 - Performance Tuning

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.

Microsoft Windows 98 provides the easiest methods and best defaults ever offered for configuring system memory and ensuring good performance on an x86-based computer. This chapter summarizes system features related to performance and describes tools for monitoring and managing system performance.

See Also

  • For more information about DriveSpace and Disk Defragmenter, see Chapter 10, "Disks and File Systems." 

  • For more information about Registry Checker, see Chapter 31, "Windows 98 Registry." 

  • For more information about Task Scheduler and Maintenance Wizard, see Chapter 27, "General Troubleshooting." 

Performance Tuning Overview

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

The Windows 98 architecture includes performance improvements over earlier versions of Windows. The changes, which strongly impact most areas of system performance, are as follows:

  • 32-bit device drivers for all system components, ensuring better performance and better resource management. 

  • An application launch accelerator that uses Disk Defragmenter to optimize disks for quicker start of applications. 

  • Optimization for new Advanced Configuration and Power Interface (ACPI) computers with fast-boot basic input/output system (BIOS) support. 

  • Quicker system shutdown than with Windows 95. 

  • More efficient memory management with MapCache and lazy swap file writing. 

  • OnNow, which causes the computer to go into a low-power mode when not in use and to quickly start up when needed. 

    For more information about OnNow, see Chapter 30, "Hardware Management." 

Many Windows 98 features provide dynamic configuration, reducing or eliminating the need for users to adjust system settings. The following self-tuning features in Windows 98 are designed to improve performance and reduce support costs.

Dynamic swap file and dynamic caching using VCACHE. VCACHE is a 32-bit protected-mode cache driver. Windows 98 uses dynamic sizes for the virtual memory swap file, the cache for file and network access, and the CD-ROM cache. Both the swap file and cache sizes can grow or shrink, depending on the computer's memory configuration and the demand for memory from applications. This relieves users or administrators from having to change the cache parameters as new memory or new applications are added. Windows 98 can take advantage of new memory automatically and expand or reduce the file and cache sizes automatically based on demands when applications are loaded or unloaded. Because in Windows 98 some code is executed out of cache, cache sizes are larger in Windows 98 than they were in Windows 95 (the MapCache feature). Also, the networking, disk, CD-ROM, and paging caches are integrated and scale as more memory is added to the computer. For more information, see "Optimizing the Swap File" and "Optimizing File System Performance" later in this chapter.

Note Windows 98 does not delete an existing swap file on the boot drive during system boot, because that file automatically shrinks if it is not being used. This keeps system boot time to a minimum.

A user might see a large Win386.swp file immediately after system boot. This could be due to the system being stressed during the previous session; it has nothing to do with the current session.

32-bit disk and file access for fast hard disk access. These mechanisms allow Windows 98 to access the hard disk or file system directly, bypassing the computer's BIOS. Using 32-bit file and disk access improves performance and allows Windows 98 to handle BIOS requests in protected mode rather than in real mode. For more information, see Chapter 10, "Disks and File Systems."

Background print rendering. For a computer that has sufficient memory to take advantage of it, background print rendering is available automatically to reduce the return-to-application time for printing. With this feature, Windows 98 first writes an enhanced metafile (EMF) format file, which is a device-independent rendering of the print job that is much faster to produce than a device-specific rendering. In the background, Windows 98 uses the EMF file to create the device-dependent rendering while the user continues to work in the application. For more information, see "Optimizing Printing" later in this chapter.

Automatic system adjustments during Windows 98 Setup. During installation, Windows 98 Setup makes decisions about certain operating system features based on the hardware configuration. For example, in a computer with low memory, Windows 98 turns off background print rendering, because this feature increases the operating system working set that is loaded into memory and cannot be paged out to the swap file.

Built-in tools for monitoring and adjusting system performance. The following tools in Windows 98 are available for managing performance-related settings:

  • System option in Control Panel provides settings for tuning and troubleshooting. For information, see "Optimizing the Swap File," "Optimizing File System Performance," and "Setting Graphics Compatibility Options" later in this chapter. 

  • System Monitor can be used to track the performance of key system components, as described in "Tracking Performance with System Monitor" later in this chapter. 

  • DriveSpace** **includes a protected-mode driver that is installed by default, providing faster performance than the earlier real-mode compression driver and using only an additional 10 or 15 percent overhead. If you are using any real-mode disk-compression utilities other than DriveSpace or DoubleSpace, plan to switch to a protected-mode version. Contact the manufacturer to determine availability of protected-mode drivers that are compatible with Windows 98. 

    Note A FAT32 volume cannot be compressed using Microsoft DriveSpace3. 

  • Disk Defragmenter can improve file access time by defragmenting uncompressed file allocation table (FAT) drives and compressed DriveSpace or DoubleSpace drives. Fragmentation occurs over time, as programs read from and write to the hard disk. Eventually, files must be stored in noncontiguous sectors on a disk. Fragmentation does not affect the validity of the information, but it takes much longer for the computer to read and write fragmented files. In addition, there is an application launch accelerator that uses Disk Defragmenter to optimize disks for quicker start of applications. 

  • Registry Checker is a system maintenance program that finds and fixes registry problems. Each time you start the computer, Registry Checker automatically scans the registry for inconsistent structures, and if no problem is found, it backs up the registry once a day. If a problem is found in the registry, Registry Checker can restore the registry from a good backup copy (Registry Checker generally maintains a set of registry backups that have successfully started the computer). If, for some reason, a backup cannot be found, Registry Checker will attempt to fix the registry. Registry Checker also removes unused space in the registry, reducing the size of the registry file and thus improving performance. 

    Scheduled Tasks Wizard lets you run useful utilities and routine tasks at regular intervals. You can set the tasks to run at times that are most convenient for you. Each task can be reconfigured once it has been set up. Task configuration parameters include:

    • Source location of the program. 

    • Frequency, date, and time that the program should be run. 

    • When to delete or stop the program. 

    • How to run the program if the computer is idle, is in use, or has power management options enabled. 

  • WinAlign is a tool that allows greater use of the MapCache feature, which optimizes memory usage and general system performance. 

Understanding System Performance

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

Windows 98 cleans up resources that have not been freed to help reduce system resource limitations. When Windows 98 determines that an application that owned certain resources no longer needs those resources in memory, it reallocates remaining data structures, freeing the resources for use elsewhere in the system.

Wherever possible, Windows 98 is self-tuning, adjusting cache sizes or other elements of the system environment to provide the best performance for the current configuration. Windows 98 can also detect when the loaded drivers or other performance-related components are not providing the optimal performance.

To see a report of performance problems

  • In Control Panel, double-click System, and then click the Performance tab. Windows 98 reports the current performance status, including whether 32-bit, protected-mode components are being used. 

System Resource Capacity in Windows 98

Windows 98 provides a significant increase in the system resources available to Windows-based and MS-DOS-based applications over what was available under earlier versions of Windows. The net result for users is that they can count on more system resources being available for creating windows, using fonts, running five or more applications simultaneously, and so on.

In Windows 98, to help reduce the system resource limitation, many data structures formerly stored in the 16-bit graphics device interface (GDI) and User heaps are now stored in 32-bit heaps. This provides more room for the remaining data elements to be created.

Table 26.1 shows the system limits in Windows 98, as compared to the constraining limits under Windows 3.1. For more information about how to assess performance of key system resources, see "Identifying Performance Problems with System Monitor" later in this chapter. For more information about the supporting architecture, see Chapter 28, "Windows 98 Architecture."

Table 26.1 Windows 3.1 and Windows 98 system limits 

Resource

Windows 3.11

Windows 982

Windows Menu handles

~299

32 KB

Timers

32

Unlimited

COM and LPT ports

4 per type

Unlimited

Items per list box

8 KB

32 KB

Data per list box

64 KB

Unlimited

Data per edit control

64 KB

Unlimited

Regions

All in 64 KB segment

Unlimited

Physical pens and brushes

All in 64 KB segment

Unlimited

Logical pens and brushes

All in 64 KB segment

All in 64 KB segment

Logical fonts

All in 64 KB segment

750 – 800

Installed fonts

250 – 300 (best case)

1000

Device contexts

200 (best case)

16 KB

1 Limits for GDI objects in Windows 3.1 are not exact, because all regions, physical objects, logical objects, device contexts (DCs), and installed fonts had to fit in a single 64 KB segment. Because many of these have been moved to the 32-bit heap, Windows 98 provides much more room for remaining items, such as logical pens, brushes, and so on. The remaining items in the Windows 98 local heap are all less than 10 – 20 bytes each.
2 System-wide resources, unless otherwise noted.

Technical Notes on MS-DOS Components in Windows 98

Many users have wondered whether Windows 98 contains MS-DOS code and, if so, whether that means that Windows 98 is somehow built on top of MS-DOS. Many of these questions relate to how Windows 98 achieves the highest possible degree of compatibility with existing devices and applications created for MS-DOS and Windows 3.x. Three key questions are answered here:

  • How does Windows 98 support internal processes and certain application services? 

  • How does Windows 98 reclaim memory from real-mode drivers? 

  • Why does Io.sys load Win.com rather than directly loading Vmm32.vxd? 

The following services were written for Windows 95 and Windows 98, and are not revisions to MS-DOS code:

  • Process and thread memory management. 

  • Interprocess communications and synchronization. 

  • Preemptive Win32 subsystem. 

  • CD-ROM, hard disk, and network input/output (I/O) services. 

  • High-level graphics operations and window management. 

  • Printing services. 

Some functions, however, are handled by MS-DOS code, although the code itself is running in virtual 8086 mode, not real mode. Functions implemented in this manner ensure backward compatibility with existing real-mode software, such as the Novell NetWare client. The following list shows such functions:

Create Program Segment Prefix (function 55h)

Get MS-DOS Version (function 30h)

Create Temp File (function 5Ah)

International (function 65h)

Dup File Handle (function 45h)

Set/Get Drive (functions 0Eh and 19h)

Exit (function 4Ch)

Set/Get Program Segment Prefix (functions 50h and 51h)

Get Date/Time (functions 2Ah and 2Ch)

NetWare Get Station Num (function DCh)

An important example of how Windows 98 reclaims memory from real-mode device drivers is MSCDEX, the CD-ROM driver. After Windows 98 Setup is completed and Windows 98 starts from the hard disk for the first time, special code runs to determine whether the protected-mode compact disc file system (CDFS) drivers have taken over the CD-ROM drive completely. If so, the real-mode MSCDEX driver in memory is matched to the related lines in Autoexec.bat, and the MSCDEX entries are then commented out. This provides a trail in Autoexec.bat to show what has happened. Similar methods are used for other device drivers that Windows 98 knows to be safe to remove, such as other vendors' real-mode disk cache utilities and redundant protected-mode virtual device drivers (VxDs).

As a final example, some users have wondered whether the fact that Io.sys loads Win.com (rather than loading Vmm32.vxd directly) is an indication that Windows 98 is built on Windows 3.x code, with the addition of new VxDs. Actually, Io.sys is used to load Win.com only to ensure backward compatibility. Certain real-mode drivers and terminate-and-stay-resident (TSR) programs insert themselves at various places in the Windows 3.1 startup process. If Windows 98 were to bypass the loading of Win.com and instead load VxDs directly, any driver that needs to insert itself when Win.com is loaded would never be called. Instead, Windows 98 starts in precisely the same way as Windows 3.1 and loads the same components in the same order, ensuring compatibility with earlier versions of applications and device drivers.

Optimizing the Swap File

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

Windows 98 uses a special file on your hard disk called a virtual memory swap file (or paging file). With virtual memory under Windows 98, some of the program code and other information are kept in random access memory (RAM), while other information is swapped temporarily to virtual memory. When that information is required again, Windows 98 pulls it back into RAM and, if necessary, swaps other information to virtual memory. This activity is invisible, although you might notice that your hard disk is working. The resulting benefit is that you can run more programs at one time than the computer's RAM would usually allow.

The Windows 98 swap file is dynamic, so it can shrink or grow based on the operations performed on the system and based on available disk space. A dynamic swap file is usually the most efficient use of resources. It can also occupy a fragmented region of the hard disk with no substantial performance penalty.

Tip The single best way you can ensure high swap file performance is to make sure that the disk containing the swap file has ample free space so that the swap file size can shrink and grow as needed.

The Windows 98 swap file (Win386.swp) is not a permanent file. However, Windows 98 can also use a permanent Windows 3.1 swap file. In this case, the file cannot shrink below the permanent size set for it in Windows 3.1, although the file can grow bigger if required.

Under Windows 98, the swap file can reside on a compressed drive if a protected-mode driver (that is, Drvspace.vxd) controls the compressed drive. DriveSpace marks the swap file as uncompressible and places the swap file as the last file in the sector heap (to reduce the risk of fragmentation), allowing room for the swap file to grow.

Although the system defaults usually provide the best performance, you can adjust the parameters used to define the swap file. For example, to optimize swap file performance on a computer with multiple hard disk drives, you might want to override the default location of the Windows 98 swap file. The swap file should be placed on the drive with the fastest performance, unless that disk is overused. If a user usually loads all software from the same drive in a computer that has multiple drives, performance might be boosted by placing the swap file on one of the drives that is not as busy.

Caution Completely disabling virtual memory might cause the computer to stop operating properly. You might not be able to restart the computer, or system performance might be degraded. Do not disable virtual memory unless instructed to do so by a product support representative.

To adjust the virtual memory swap file

  1. In Control Panel, double-click System, click the Performance tab, and then click Virtual Memory

  2. To specify a different hard disk, click the Let me specify my own virtual memory settings option. Then specify the new disk in the Hard disk box. Or type values (in kilobytes) in the Minimum or Maximum box. Then click OK 

If you set the maximum swap file size in the Virtual Memory dialog box to the amount of free space currently on a drive, Windows 98 assumes that it can increase the swap file beyond that size if more free disk space becomes available. If you want to impose a fixed limit on the swap file size, make sure that the limit you choose is less than the current maximum.

Optimizing File System Performance

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

In Windows 98, the disk cache is dynamic. You do not need to configure its size as part of system configuration. Because of this, certain settings used for Windows 3.x are not required in Windows 98 and should be removed from the configuration files. Table 26.2 shows these settings.

Table 26.2 Configuration settings not required 

Configuration file

Configuration setting to remove

Autoexec.bat

SHARESMARTDRV settings. Any entries for other disk cache software.1

Config.sys

SMARTDRV settings (double-buffer driver). Any entries for other disk cache software.

1 For a list of the disk caching software that is removed by Windows 98 Setup, see Chapter 5, "Setup Technical Discussion."

The overall performance, for example, of a computer with 16 MB of memory is better under Windows 98 than under Windows 3.1. However, the amount of paging might increase under Windows 98 for the following reasons:

  • Windows 98 aggressively writes the contents of dirty memory pages (pages that contain changes) during system idle time, even if it does not need the memory then. This causes more idle-time disk activity but speeds up future memory allocations by doing some of the work while the system is idle. 

  • Much more of Windows 98 can be paged out to disk than Windows 3.1. 

Changing the cache size is not a good method of limiting paging. Paging through the cache would quickly overwhelm it and make it useless for other file I/O. Although swap file I/O operations do not go through the cache, memory-mapped files and executable files do. The cache, however, is designed to make sure it cannot be overwhelmed by such I/O operations.

Changing the cache size (even if you could) probably would not have much effect on paging. The cache grows and shrinks as needed. If the system begins to page a lot, the cache shrinks automatically. However, people often think they are seeing a lot of paging, but they are really seeing other disk activity, such as Windows 98 building its icon cache or the cache lazy writing.

A common reason for excessive paging is that the working set of the applications you are running is greater than the amount of physical RAM available. If the amount of paging is extreme, to the point where system performance is poor, a real-mode driver for the hard disk may be the cause, and should be replaced with a protected mode driver. If Windows 98 needs to use real-mode for its disk I/O operations, a lot of code has to be locked down that would otherwise be pageable, and your working set increases significantly.

Note Paging through a real-mode driver increases paging, and on a computer with 16 MB of memory (the minimum configuration for Windows 98), it can cause unacceptable performance.

Preventing Data Loss with 32-bit Disk Access

The 32-bit disk access feature is always turned on in Windows 98 unless Windows 98 detects a real-mode disk driver that does not have a protected-mode replacement. This could be, for example, an older Stacker driver or a hard-disk security or encryption driver for a disk drive.

To prevent the performance loss that occurs when Windows 98 is forced to use a real-mode disk driver, upgrade to a protected-mode replacement for that driver. If you need to determine why a Windows 98 real-mode disk driver was installed, check the Ios.log file. For more information, see Chapter 24, "Device Management."

Optimizing File System Performance with Profiles

In Windows 98, file system and disk performance can be controlled based on how the computer is used in most situations. The option for configuring file system performance is controlled only by the user. None of these settings are affected by other configuration changes that might be made in Windows 98, such as installing file and printer sharing services, or choosing the Portable option as the setup type when installing Windows 98.

Note Application launch acceleration depends on cluster size and, therefore, the particular file system. Smaller cluster sizes give better application launch performance—the 4 KB cluster size (FAT32) is best; larger sizes (for example, FAT16) give less of a performance boost.

To optimize file system performance
  1. In Control Panel, double-click System, click the Performance tab, and then click File System

  2. In the Typical role of this computer box, select the most common role for this computer, and then click OK. Table 26.3 describes each role in the list.

    Table 26.3 Computer role descriptions 

    Role

    Description

    Desktop computer 

    A normal computer acting primarily as a network client, or an individual computer with no networking. This configuration assumes that there is more than the minimum required RAM, and that the computer is running on power (rather than battery). 

    Mobile or docking system 

    Any computer with limited memory. This configuration assumes that RAM is limited and that the computer is running on battery, so the disk cache should be flushed frequently. 

    Network server 

    A computer used primarily as a peer server for file or printer sharing. This configuration assumes that the computer has adequate RAM and frequent disk activity, so the system is optimized for a high amount of disk access. 

Each disk performance profile adjusts the values of the following file system settings in the registry:

  • PathCache specifies the size of the cache that the virtual file allocation table (VFAT) can use to save the locations of the most recently accessed directory paths. This cache improves performance by reducing the number of times the file system must seek paths by searching the file allocation table. The number of paths is 32 for the Desktop computer profile, 16 for Mobile or docking system, and 64 for Network server. 

  • NameCache stores the locations of the most recently accessed file names. The combined use of PathCache and NameCache means that VFAT never searches the disk for the location of cached file names. Both PathCache and NameCache use memory out of the general system heap. The number of file names is about 677 (8 KB) for the Desktop computer profile, 337 (4 KB) for Mobile or docking system, and 2729 (16 KB) for Network server. 

  • BufferIdleTimeout, BufferAgeTimeout, and VolumeIdleTimeout control the time between when changes are placed in the buffer to when they are written to the hard disk. 

The values to be assigned to each disk performance profile are stored in the following registry key:

HKEY_LOCAL_MACHINE \Software \Microsoft \Windows \CurrentVersion \FS Templates 

The following subkey contains the actual settings for the profile currently used:

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \FileSystem 

An additional performance setting in the FileSystem subkey, ContigFile AllocSize, can be used to change the size of the contiguous space that VFAT searches for when allocating disk space. Under MS-DOS, the file system began allocating the first available space found on the disk, which ensured a great deal of disk fragmentation and related performance problems. By default under Windows 98, VFAT first tries to allocate space in the first contiguous 0.5 MB of free space and then returns to the MS-DOS method if it cannot find at least this much contiguous free space. This optimizes performance for both the swap file and multimedia applications.

In some cases, you might choose to set a smaller value in the registry, as when you are not running demanding applications on the computer. A smaller value for ContigFileAllocSize, however, can lead to more fragmentation on the disk and, consequently, more disk access for the swap file or applications that require larger amounts of disk space.

Optimizing CD-ROM File System Performance

The CD-ROM cache is separate from the cache used for disk file and network access because the performance characteristics of the CD-ROM are different. This cache can be paged to disk (the file and network cache cannot), reducing the working set for Windows 98 but still allowing for better CD-ROM performance. When Windows 98 is retrieving data from a compact disc, it is still faster to read a record from the cache even if it has been paged to disk, because the disk-access time is much faster than the compact disc–access time.

Tip A small CD-ROM cache makes a big difference in streaming performance, but a much larger cache does not pay off as significantly, unless the cache is large enough to contain entire multimedia streams.

To set the supplemental cache size for CDFS
  1. In Control Panel, double-click System, click the Performance tab, and then click File System

  2. Click the CD-ROM tab, and drag the slider to set the Supplemental cache size

    Move the Supplemental Cache Size slider to the right to allocate more RAM for caching data from the CD-ROM drive or to the left to allocate less RAM for caching data. 

    Note Many multimedia programs perform better with a smaller cache, because they tend not to reuse data. 

  3. In the Optimize access pattern for box, select a setting based on your computer's CD-ROM drive speed. Table 26.4 shows the size of the cache created for each CD-ROM drive speed setting. 

    Table 26.4 Optimizing cache size 

    CD-ROM drive speed

    Cache size

    No read-ahead 

    1088 KB 

    Single-speed drives 

    1088 KB 

    Double-speed drives 

    1138 KB 

    Triple-speed drives 

    1188 KB 

    Quad-speed or higher 

    1238 KB 

  4. Click OK, and then shut down and restart the computer. 

Optimizing DVD File System Performance

Digital video discs (DVDs) primarily use the Universal Disk Format (UDF) for their file systems. UDF uses the main file system cache (VCACHE), and there are no performance settings for end users to change.

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

For more information about DVD, see Chapter 10, "Disks and File Systems," and Chapter 30, "Hardware Management."

Optimizing Removable Disk Drive Performance

Windows 98 gives you the option to use write-behind caching to improve the performance of removable disk drives, such as the ZIP or JAZ drive.

To set write-behind caching for removable disk drives
  1. In Control Panel, double-click System, click the Performance tab, click File System, and then click the Removable Disk tab. 

  2. Select the Enable write-behind caching on all removable disk drives check box. Click OK

  3. If this causes a problem with disk operations, follow step 1, and then click to clear the Enable write-behind caching on all removable disk drives check box. Click OK

Optimizing I/O Transfers by Using Direct Memory Access

The advantage of using direct memory access (DMA) with integrated device electronics (IDE) CD-ROM and disk drives is that it allows much lower CPU usage during I/O transfers for drives that are part of an original equipment manufacturer (OEM) computer. DMA is enabled by default in OEM computers, but because certain older IDE drives can corrupt data when using DMA, care must be taken when enabling DMA in upgraded computers.

To enable DMA
  1. In Control Panel, double-click System, and then click the Device Manager tab. 

  2. Select an IDE device under the CD-ROM branch or the Disk drives branch, and click Properties

  3. Click the Settings tab, and then check off the DMA check box. 

  4. Click OK, and then shut down and restart the computer. 

Using File System Troubleshooting Options

The System option in Control Panel presents a set of options for changing file system performance. You can use these options when you experience rare hardware or software compatibility problems.

Important Enabling any of the file system troubleshooting options will seriously degrade system performance. Typically, you want to enable these options only if instructed to do so by a product support representative. Otherwise, these options should rarely, if ever, be used.

To display the file system troubleshooting options
  1. In Control Panel, double-click System, and then click the Performance tab. 

  2. Click File System, and then click the Troubleshooting tab. 

Table 26.5 summarizes the settings in Troubleshooting properties. Each option sets a value in the following registry key.

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \FileSystem 

Table 26.5 File system troubleshooting options 

File system option

Description

Disable new file sharing and locking semantics.

This option alters the internal rules for file sharing and locking on hard disks, governing whether certain processes can have access to open files in certain share modes that guarantee a file will not be modified. This option should be checked only in the rare case that an MS-DOS-based application has problems with sharing under Windows 98. This sets SoftCompatMode=0 in the registry.

Disable long name preservation for old programs.

This option turns off the tunneling feature, which preserves long file names when files are opened and saved by applications that do not recognize long file names. This option should be checked in the rare case that an important legacy application is not compatible with long file names. This sets PreserveLongNames=0 in the registry.

Disable protected-mode hard disk interrupt handling.

This option prevents Windows 98 from terminating interrupts from the hard disk controller and bypassing the read-only memory (ROM) routine that handles these interrupts. Some hard disk drives might require this option to be checked in order for interrupts to be processed correctly. If this option is checked, the ROM routine handles the interrupts, slowing system performance. This sets VirtualHDIRQ=1 in the registry. This setting is off by default in Windows 98.

Disable synchronous buffer commits.

The file commit API is used to guarantee integrity of user data that is being written by an application to a disk. Normally, the file commit API is used by applications to ensure that critical data that the application is writing is written to the disk before returning from a call made to the file commit API. Choosing this option disables this feature. Data is still written to disk, but it is written to disk in the background at the discretion of the file system. Choosing this option can compromise data written to disk by an application should the system crash before the data is actually written. This option was added to allow adequate performance of a defective database application that used the file commit API incorrectly and excessively.

Disable all 32-bit protected-mode disk drivers.

This option ensures that no 32-bit disk drivers are loaded in the system, except the floppy driver. Typically, you would check this option if the computer does not start because of disk peripheral I/O problems. If this option is enabled, all I/O will go through real-mode drivers or the BIOS. Notice that in this case, all disk drives that are visible only in protected mode will no longer be visible. This sets ForceRMIO=1 in the registry.

Disable write-behind caching for all drives.

This option ensures that all data is flushed continually to the hard disk, removing any performance benefits gained from disk caching. This option should be checked only in the rare case that you are performing risky operations and must ensure prevention of data loss. For example, a software developer who is debugging data at Ring 0 while creating a VxD would check this option. This sets DriveWriteBehind=0 in the registry.

Setting Graphics Compatibility Options

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

In Windows 98, graphics hardware acceleration features can be turned off when system performance indicates incompatibility problems. Specifically, problems can occur when Windows 98 assumes a display adapter can support certain functionality that it cannot. In such cases, the side effects might be anything from small irregularities on the screen to system failure. You can disable hardware acceleration features of the display adapter so that the computer can still be used if there is a problem with the display adapter. If changing these settings fixes otherwise unexplained system crashes or performance problems, the source of the problem is probably the computer's display adapter.

To change graphics performance settings

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

    Drag the slider to change the Hardware acceleration setting, as summarized in the following list. Then click OK.

    • The default setting is Full, which turns on all graphics hardware acceleration features available in the display driver.

    • The first notch from the right can be set to correct mouse pointer display problems. This setting disables hardware cursor support in the display driver by adding SwCursor=1 to the [Display] section of System.ini. 

    • The second notch from the right can be set to correct certain display errors. This setting prevents some bit block transfers from being performed on the display card and disables memory-mapped I/O for some display drivers. This setting adds SwCursor=1 and Mmio=0 to the [Display] section of System.ini, and SafeMode=1 to the [Windows] section of Win.ini. 

    • The last notch from the right (None) can be set to correct problems if your computer frequently stops responding to input, or has other severe problems. This setting adds SafeMode=2 to the [Windows] section of Win.ini, which removes all driver acceleration support and causes Windows 98 to use only the device-independent bitmap (DIB) engine rather than bit block transfers for displaying images. 

      For example, an error message at system startup stating that an application caused "an invalid page fault in module <unknown>" would indicate a problem between the display driver and the Windows 98 DIB engine. In such cases, this setting should correct the problem. 

For more information about the built-in graphics performance features in Windows 98, see Chapter 24, "Device Management," and Chapter 28, "Windows 98 Architecture."

Optimizing Printing

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

The way printing to a printer attached to a file or print server occurs depends on your server's operating system. If you print to a server running Windows 98, the rendering from the EMF format to the printer-specific language happens on the server. This means that less work is performed on the client computer, giving the user better performance.

When you print to NetWare or Windows NT servers, the rendering from EMF to the printer-specific format happens on the client computer. Although this happens in the background, it still means more work is performed on the client computer. Printing to a printer attached locally causes both the EMF rendering and the device-specific rendering to happen on the computer. For more information, see Chapter 11, "Printing, Imaging, and Fonts."

You also need to decide on the trade-off between disk use and return-to-application time when configuring printing in Windows 98.

To define spool settings for print performance

  1. In Control Panel, double-click Printers, right-click a printer icon, and then click Properties.

  2. Click the Details tab, and then click Spool Settings.

    Select Spool print jobs so program finishes printing faster, and then click one of the following options:

    • Click Start printing after last page is spooled if you want the return-to-application time to be faster. This requires more disk space and increases the total print time. The second rendering does not start until the entire file is written to the EMF file, decreasing the amount of work performed on the computer as you print, but increasing the disk space, because the entire file has to be written before the second rendering starts.

    • Click Start printing after first page is spooled if you want the second rendering to take place simultaneously with the writing of the EMF file. This reduces the total print time and disk space required, but it increases the return-to-application time. 

Optimizing Network Performance

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

Windows 98 automatically adjusts system parameters to accommodate users' demands and various network configurations. For example, it alters the size of the system paging file and cache buffer as memory requirements change, and automatically tunes network time-out values to fit varying local area network (LAN) topologies.

With few exceptions, manual tuning of operating system parameters is not required to improve network performance. However, you can take several other measures that can increase file-sharing performance, such as reconfiguring or changing hardware components. This section summarizes these measures.

  • Use a 32-bit, protected-mode network client. 

    For example, the Microsoft Client for NetWare Networks significantly out-performs the Virtual Loadable Module (VLM) or NetWare 3.x workstation shell (NETX) version of the NetWare client. 

  • Do not add unnecessary protocols. 

    If you can see all network connections with only Transport Control Protocol/Internet Protocol (TCP/IP) loaded, do not manually add Internetwork Packet Exchange/Sequenced Packet Exchange (IPX/SPX). Doing so only creates system overhead, which slows down network connections and consumes additional system memory. 

  • Use the new network driver interface specification (NDIS) version 3.1 or later network adapter drivers provided with Windows 98. 

  • If your system does not have a modem (or if you have one and do not use it), and you do not use Point-to-Point Tunneling Protocol (PPTP), remove all Dial-Up Networking components. 

  • Install a new network adapter. The adapters currently available provide markedly better performance than earlier models. If possible, select an adapter that matches the computer bus. For more information, see Chapter 15, "Network Adapters and Protocols." 

    Network adapters have become exceptionally reliable and inexpensive. The low costs of Ethernet adapters, including new Plug and Play hardware, means that usually the most cost-effective way to improve network performance is to replace an older network adapter with a new model. The cost for the new hardware is offset almost immediately by savings in support time and improved performance. 

The following measures can help you obtain the best performance from computers that provide file and printer sharing services:

  • Let Windows 98 determine the right size for the swap file.

  • Make sure the computer has enough memory, depending on the size of your network and the number of users who will be accessing the peer server. 

  • In the System option in Control Panel, set the typical role of the computer to Network server, as described in "Optimizing File System Performance with Profiles" earlier in this chapter. 

  • Install a high-performance network adapter on the peer server. If the computer uses an 8-bit adapter, you can increase performance significantly by replacing it with a high-performance 16-bit or 32-bit adapter.

  • Disable rarely used network adapters. This improves overall network performance by decreasing the number of broadcast packets on the network. Each broadcast packet must be processed by every active adapter on the network. High broadcast rates adversely affect LAN performance by increasing network connection time. You can disable a network adapter by disabling its binding to protocols in the Network option in Control Panel. 

  • Install faster hard drives or disk controllers (or both). Typically, when setting up peer servers, you will want to choose computers configured with the best-performing hardware. 

  • On a computer running File and Printer Sharing for NetWare Networks, set the read-only attribute on shared files wherever possible. The network client can take better advantage of file caching with read-only files, improving network performance and reducing the load on the server.

Optimizing Conventional Memory

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

The methods for conventional memory management under Windows 98 are the same as for MS-DOS 6.x:

  • In Config.sys, load himem and emm386 (using either the ram or the noems switch), and load any required real-mode drivers and applications using devicehigh or loadhigh statements. 

  • Remove as many real-mode drivers and TSRs from Config.sys and Autoexec.bat as possible, and instead use new protected-mode drivers and applications created for Windows 98. 

  • Use buffershigh, fcbshigh, fileshigh, lastdrivehigh, and stackshigh to ensure that reserved memory is taken out of the upper memory area. 

  • Do not load smartdrv in your configuration files, except in configuration files for an application that you run in MS-DOS mode. Windows 98 uses an improved method for disk caching, so loading smartdrv typically wastes memory that could be used by MS-DOS-based applications. 

You can still run the MEMMAKER utility provided with MS-DOS 6.2x to load real-mode drivers in the upper memory blocks (UMBs). This utility is available in the Tools\Oldmsdos directory on the Windows 98 compact disc.

For more information about MS-DOS mode and other configuration issues related to MS-DOS-based applications, see Chapter 25, "Application Support." For specific information about MS-DOS memory settings, consult the Microsoft MS-DOS 6.2x Technical Reference or other books on MS-DOS memory management.

MS-DOS Mode and Performance

Do not assume that running an MS-DOS-based application in MS-DOS mode provides better performance. When an application runs in MS-DOS mode, Windows 98 and all of its protected-mode drivers are unloaded, so the application is running in real mode with exclusive use of the computer's resources.

Although this might help with a few applications that otherwise cannot run under Windows 98, it does not benefit performance overall, because the application does not get the benefit of protected-mode drivers, VCACHE, 32-bit disk access, and so on. Also, real-mode device drivers must be loaded, reducing the amount of conventional memory available to the application.

Tracking Performance with System Monitor

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

System Monitor is a Windows 98 tool you can use to help determine the cause of problems on a local or remote computer by measuring the performance of hardware, software services, and applications. When you make changes to the system configuration, System Monitor shows the effect of your changes on overall system performance. You can also use System Monitor to justify hardware upgrades.

A new feature in Windows 98 is System Monitor's ability to log. This is useful for measuring system performance over time. For example, logging memory consumption while using a specific application could be helpful.

Before making major configuration changes, use System Monitor to evaluate your current configuration; this can help you determine whether a particular system or network component is acting as a performance bottleneck.

System Monitor is not automatically installed with the Windows 98 Setup.

To install System Monitor

  1. In Control Panel, double-click Add/Remove Programs. 

  2. Click the Windows Setup tab. 

  3. Click System Tools, and then click Details

  4. Click System Monitor, and then click OK

To run System Monitor

  • On the Start menu, point to Programs, point to Accessories, point to System Tools, and then click System Monitor

To start logging

  1. In System Monitor, click File, and then click Start Logging

  2. Type a file name for the log file, and then click Save

  3. On the File menu, click Stop Logging to stop logging. 

To edit an item in a chart

  1. In System Monitor, click Edit, and then click Edit Item

  2. Click Add Item, Remove Item, or Edit Item, and then make the changes you want. 

    Note To view a definition of an item in the Item list, click the item, and then click Explain

  3. Click OK

    Note You can edit only a chart that you are currently viewing. 

To change the look of a chart

  • In System Monitor, click View, and then click Line Charts, Bar Charts, or Numeric Charts

    Note You can edit only a chart that you are currently viewing. 

To use System Monitor to monitor remote computers

  1. Install the Microsoft Remote Registry service on your computer and on the computer you want to monitor, as described in Chapter 23, "System and Remote Administration Tools." 

  2. In System Monitor, click the File menu, and then click Connect

  3. Type the name of the computer you want to monitor, and then click OK.

    Note Monitoring a remote computer requires user-level security. 

Configuring Performance Charts in System Monitor

System Monitor uses the dynamic data information in the registry to report on the state of processes. You can use System Monitor to do the following:

  • Monitor real-time system performance and compare it with historical performance to help identify trends over time. 

  • Determine system capacity and identify bottlenecks. 

  • Monitor the effects of system configuration changes. 

To use System Monitor to track performance problems
  1. In System Monitor, click the Edit menu, and then click Add Item

  2. In the Category list, click the resource that you want to monitor. 

  3. In the Item list, select one or more resources that you want to monitor.

    To select more than one item, press CTRL while clicking the items that you want to select. To select several items in a row, click the first item, and then press and hold down SHIFT while clicking the last item. 

  4. Click Explain for more information about a selected resource. 

  5. Click OK. A performance chart of the resource is added to System Monitor. 

  6. To change the view of the data from a line chart to a bar chart or a numeric listing, click the related button on the toolbar. 

System Monitor offers menu commands for configuring the charts:

  • To change the update interval, click the Options menu, and then click Chart

  • To configure the color and scaling for a selected item, click the Edit menu, and then click Edit Item

  • To control the display of the toolbar, status bar, and title bar, click the View menu, and then click Toolbar, Status Bar, or Hide Title Bar, respectively. 

Identifying Performance Problems with System Monitor

If you want to use System Monitor effectively, you need to run it frequently to become familiar with what typical performance looks like for a standard configuration so that you can recognize performance problems when they appear in System Monitor.

To become well-acquainted with System Monitor, run it while you are doing your usual work under Windows 98. To do this, add the System Monitor icon to your desktop. Then run System Monitor and use commands on the View menu to remove the title bar or to force the window to be always on top.

Following are some general guidelines and key settings for using System Monitor in troubleshooting performance problems:

  • If you suspect an application might not be freeing memory when it finishes using it (sometimes called memory leaks), monitor the value of Kernel: Threads over time. This will indicate whether the application is starting threads and not reclaiming them. Windows 98 automatically removes such threads when the application closes, but if you identify a leak while the application is running, you might decide that you should restart the application periodically. 

  • If the values for Memory Manager: Discards and Memory Manager: Page-outs indicate a great deal of activity, performance problems might be related to system memory stress. These values might indicate a need for more physical memory. 

    If a computer seems slow, check the values reported by Kernel: Processor Usage (%), by Memory Manager: Page Faults, and by Memory Manager: Locked Memory, as described in the following list:

    • If values for Kernel: Processor Usage (%) are high even when the user is not working, check to see which application might be keeping it busy. To do this, press CTRL+ALT+DEL to see the list of tasks in the Close Program dialog box. 

    • If the values for Memory Manager: Page Faults are high, the applications being used might have memory needs beyond the computer's capabilities. 

    • If the Memory Manager: Locked Memory statistics are continually a large portion of the Memory Manager: Allocated Memory value, inadequate free memory might be affecting performance. Also, you might be running an application that locks memory unnecessarily. (Locked memory indicates the portion of memory used that cannot be paged out.) 

Summary of System Monitor Categories

System Monitor tracks functionality for the following categories:

  • Dial-Up Adapter 

  • Disk Cache 

  • File System 

  • Kernel 

  • Memory Manager 

  • Microsoft Network Client 

  • Microsoft Network Server file and printer sharing services

Note Because System Monitor uses registry information, drivers can be written to report additional information in System Monitor. For more information about creating such drivers, see the Microsoft Windows 98 Device Development Kit. 

Tables 26.6 through 26.12 describe the settings for the System Monitor categories.

Table 26.6 Dial-Up Adapter settings in System Monitor 

Setting

Description

Alignment Errors

Serial port alignment errors.

Buffer Overruns

Serial port buffer overrun errors.

Bytes Received/Second

Number of bytes received per second.

Bytes Transmitted/Second

Number of bytes transmitted per second.

Connection Speed

Connection speed in bits per second.

CRC Errors

Number of frames with CRC errors.

Frames Received/Second

Number of good frames received per second.

Frames Transmitted/Second

Number of frames transmitted per second.

Framing Errors

Serial port framing errors.

Incomplete Frames

Number of incomplete frames received.

Overrun Errors

Serial port overrun errors.

Timeout Errors

Serial port timeout errors.

Total Bytes Received

Total number of bytes received.

Total Bytes Transmitted

Total number of bytes transmitted.

Table 26.7 Disk Cache settings in System Monitor 

Setting

Description

Cache buffers

Number of active buffers in a cache, including any and all compressed buffers.

Cache hits

Number of times data found in the cache resulting in I/O requests.

Cache misses

Number of times data not found in the cache resulting in I/O requests.

Cache pages

Current number of disk cache pages.

Failed cache recycles

Number of times a recycling request (either least recently used [LRU] or random) has failed. This can happen in low memory situations or when all cache buffers are currently in use.

LRU cache recycles

Number of times the cache is sequentially searched for a buffer to recycle, beginning with the oldest data. This happens when new data needs to be added to the cache, or when memory manager needs to borrow memory from the cache.

Maximum cache pages

Maximum number of disk cache pages.

Minimum cache pages

Minimum number of disk cache pages.

Random cache recycles

Number of times the cache is randomly searched for a buffer to recycle. This can happen whenever the cache becomes filled with data not used lately.

Table 26.8 File System settings in System Monitor 

Setting

Description

Bytes read/second

The number of bytes read from the file system each second.

Bytes written/second

The number of bytes written by the file system each second.

Dirty data

The number of bytes waiting to be written to the disk. Dirty data is stored in cache blocks, so the number reported might be larger than the actual number of bytes waiting.

Reads/second

The number of read operations delivered to the file system each second.

Writes/second

The number of write operations delivered to the file system each second.

Table 26.9 Kernel settings in System Monitor 

Setting

Description

Processor Usage (%)1

The approximate percentage of time the processor is busy.

Threads

The current number of threads present in the system.

Virtual Machines

The current number of virtual machines present in the system.

1 Monitoring processor usage will increase processor usage slightly, so do not monitor this setting unless you are investigating a problem.

Table 26.10 Memory Manager VMM32 settings 

Setting

Description

Allocated memory1, 2

The total amount in bytes of Other memory and Swappable memory. If this value is changing when there is no activity on the computer, it indicates that the disk cache is resizing itself.

Discards

The number of pages discarded from memory each second. (The pages are not swapped to the disk, because the information is already on the disk.)

Disk cache size

The current size, in bytes, of the disk cache.

Instance faults

The number of instance faults each second.

Locked memory1

The amount of allocated memory that is locked.

Locked non-cache pages

Number of non-cache locked pages.

Maximum disk cache size

The largest size possible for a disk cache. This is a fixed value loaded at system startup.

Mid disk cache size

The mid disk cache size. This is a fixed value loaded at system startup.

Minimum disk cache size

The smallest size possible for a disk cache. This is a fixed value loaded at system startup.

Other memory1

The amount of allocated memory not stored in the swap file, for example, code from Win32 dynamic link libraries (DLLs) and executable files, memory mapped files, nonpageable memory, and disk cache pages.

Page faults

The number of page faults each second.

Page-ins

The number of pages swapped into memory each second, including pages loaded from a Win32-based executable file or memory-mapped files. Consequently, this value does not necessarily indicate low memory.

Page-outs

The number of pages swapped out of memory and written to disk each second.

Pages mapped from cache

Used to monitor MapCache/WinAlign changes. The swap file size in use at the same time as this setting should be monitored for differences after running the WinAlign tool.

Swap file defective

The number of bytes in the swap file that are found to be physically defective on the swap medium. Because swap file frames are allocated in 4096-byte blocks, a single damaged sector causes the whole block to be marked as defective.

Swap file in use

The number of bytes being used in the current swap file.

Swap file size

The size, in bytes, of the current swap file.

Swappable memory1

The number of bytes allocated from the swap file. Locked pages still count for the purpose of this metric. This includes code from 16-bit applications and DLLs, but not code from Win32 DLLs and executable files.

Unused physical memory

Amount of physical memory (RAM) not currently in use.

1 This number includes the disk cache. To see the actual size, subtract the value of Disk cache size.
2 For any Windows-based application that uses common dialog boxes, the spooler, OLE, and so on, handles are cached for later use, so not all resources will be freed when the application closes.

Table 26.11 Microsoft Network Client settings in System Monitor 

Setting

Description

Bytes read/second

The number of bytes read from the redirector each second.

Bytes written/second

The number of bytes written to the redirector each second.

Number of nets

Number of networks currently running.

Open files

Number of open files on the network.

Resources

Number of resources.

Sessions

Number of sessions.

Transactions/second

The number of server message block (SMB) transactions managed by the redirector each second.

Table 26.12 Microsoft Network Server file and printer sharing for Microsoft or NetWare networks settings in System Monitor 

Setting

Description

Buffers

The number of buffers used by the server.

Bytes Read/sec

The total number of bytes read from a disk.

Bytes Written/sec

The total number of bytes written to a disk.

Bytes/sec

The total number of bytes read from and written to a disk.

Memory

The total memory used by the server.

NBs

Server network buffers.

Server Threads

The current number of threads used by the server.

WinAlign and MapCache

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

WinAlign is a tool designed to optimize the performance of executable code (binaries) on the Windows 98 platform. WinAlign works by formatting the sections of binary files along 4 KB boundaries. Because pages on the Intel x86 chip family are 4 KB, this aligns the executable sections with the memory pages, increasing the efficiency of data caching.

Caution WinAlign works by restructuring an executable's files and can cause problems with certain applications. Such damage can usually be corrected by restoring the files to their previous condition (type WinAlign -r on the command line). In some cases, it may be necessary to reinstall the application.

MapCache is a performance feature that causes programs to consume less memory. Simply installing Windows 98 gives you some of the benefits of aligned binaries running directly from the cache, but to gain the most benefit from aligned binaries, you should run Winalign.exe. The alignment process takes less than one minute on an empty drive (with only Windows 98 installed), and should not take longer than five or six minutes on a full drive.

Memory can be divided into two parts: the disk cache (VCACHE) and memory that is allocated to run programs (VMM). The cache is useful because memory I/O is faster than disk I/O. For example, if you close Microsoft Word and then shortly afterwards restart Microsoft Word, much of the application is brought into VMM to run from the cache rather than having to be read off the disk. The result is a faster application start.

The downside of this process is that the cache takes up memory that could be used for other applications. You have two copies of some data in physical memory: one copy in the cache and another in VMM, which is being used to run the application. Having more memory available to VMM in many other cases than the application reload lets your system run faster, as it prevents over committing memory and writing/reading from the swap file (another case of slow disk I/O).

Memory mapped I/O out of cache is the best of both worlds. This process keeps a single copy of many pages of memory in one place rather than two places. This gives you more memory available for running applications, and, at the same time, less of the swap file is being used.

The WinAlign.exe file is located on the Windows 98 Resource Kit compact disc. For more information about WinAlign, see Microsoft Windows 98 Resource Kit Tools Help on the Windows 98 compact disc.

Troubleshooting Performance Tuning

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

This section describes specific issues in performance and how to correct them. For information about general procedures and Windows 98 tools that can be used for troubleshooting, see Chapter 27, "General Troubleshooting."

Optimize performance of the floppy disk drive. 

Some computers, especially portable ones, start Windows with a disk mounted in the floppy drive. If you commonly add or remove floppy disks between Windows sessions and the computer often does not recognize the new disk, use the Search for new floppy disk drives each time your computer starts feature to direct the floppy driver to scan for new disks at every startup.

If this feature is not selected, Windows starts faster, because a floppy driver uses the previous settings for drive information.

To optimize performance of the floppy disk drives

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

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

  3. Select the Search for new floppy disk drives each time your computer starts check box to scan for new drives every time Windows starts 

    – Or – 

    Clear the check box so Windows will not scan for new drives at startup. 

The DMA check box in Device Manager will not remain checked. 

When you enable DMA support on the Settings tab in the properties for an IDE hard disk, the DMA check box in Device Manager may not remain checked even though the IDE controller supports bus mastering and DMA. This happens because the hard disk may not support a multiple-word DMA protocol.

DMA (also referred to as bus mastering) reduces CPU overhead by providing a mechanism for data transfers that do not require monitoring by the CPU. The transfer rate for a particular data transfer event will not noticeably increase. However, overall CPU overhead should be reduced using DMA mode.

A disadvantage of implementing DMA data transfer operations is that the PC/AT and IDE hard disk controller evolved around PIO data transfer methods. As a result, the system Int 13h BIOS and native operating system device drivers evolved around PIO transfers instead of DMA transfers. Modifications to the BIOS, as well as external device drivers, have been necessary to achieve the incremental performance that DMA offers.

To determine whether your IDE hard disk supports multiple-word DMA protocol, test the primary IDE drive and the secondary IDE drive.

To test the primary IDE drive

  1. Restart the computer. Press the CTRL key to get the Windows 98 Startup menu, and then choose Command Prompt Only

  2. At the command prompt, type debug

  3. At the hyphen prompt, type the following lines, pressing ENTER after each line. Do not type the comment. 

    Note The first character of each line is the letter o, not the numeral zero.

    Type

    Comment

    o 1f6 a0 

    a0 (a-zero) is for a master drive; use b0 for a slave. 

    o 1f2 22 

    22 is for DMA mode 2; use 21 for DMA mode 1. 

    o 1f1 03 

    03 (zero-3) is to program the hard disk timing. 

    o 1f7 ef 

    ef is the set feature command for the hard disk. 

    i 1f1 

    Reads in the error status; a value is returned. 

    If the number returned after entering i 1f1 is 00, the hard disk accepts the DMA protocol timing that you entered with the o 1f2 statement, and the hard disk supports DMA. A return value of 04 indicates that the hard disk does not support a DMA multiple-word protocol. If the value returned is not 00 or 04, you may not have typed the characters correctly, or you may need to quit Windows. 

    PIO mode 3 hard disks may support multiple-word DMA mode 1. PIO mode 4 hard disks should support multiple-word DMA mode 2. If you have a PIO mode 4 drive that does not support multiple-word DMA mode 2, it is possible that the hard disk has a firmware problem. Contact the hard disk manufacturer, and verify the firmware version. 

  4. To quit Debug, type q and press ENTER. 

To test the secondary IDE drive

  1. Restart the computer. Press CTRL to get the Windows 98 Startup menu, and then choose Command Prompt Only

  2. At the command prompt, type debug

  3. At the hyphen prompt, type the following lines, pressing ENTER after each line. Do not type the comment. 

    Note The first character of each line is the letter o, not the numeral zero.

    Type

    Comment

    o 176 a0 

    a0 (a-zero) is for a master drive; use b0 for a slave. 

    o 172 22 

    22 is for DMA mode 2; use 21 for DMA mode 1. 

    o 171 03 

    03 (zero-3) is to program the hard disk timing. 

    o 177 ef 

    ef is the set feature command for the hard disk. 

    i 171 

    Reads in the error status; a value is returned. 

    If the number returned after entering i 171 is 00, the hard disk accepts the DMA protocol timing that you entered with the o 172 statement, and the hard disk supports DMA. A return value of 04 indicates that the hard disk does not support a DMA multiple-word protocol. 

    If your drive does support a DMA multiple-word protocol and the DMA check box will not remain enabled, the IDE controller may not be compatible with the Microsoft IDE bus mastering driver. 

  4. To quit Debug, type q and press ENTER. 

Additional Resources 

For more information about

See this resource

MS-DOS memory settings

Microsoft MS-DOS 6.2x Technical Reference or other books on MS-DOS memory management

Creating drivers

Microsoft Windows 98 Device Development Kit

Resource kit tools

Microsoft Windows 98 Resource Kit Tools Help on the Windows 98 compact disc

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