Last month, I discussed how minimizing the load on your system could reduce the chances of having a General Protection Fault (GPF). Usually, GPFs are caused when a program attempts to access a memory address that’s already in use by another program or driver. Because of this, the technique that I discussed in part one is the most effective procedure for eliminating these errors. Unfortunately, simply minimizing the load on your system isn’t always enough. In this Daily Drill Down, I’ll discuss some other techniques you can use to get rid of GPFs.
Before you begin
Before you get started, I strongly recommend that you work through the steps outlined in part one. The techniques in this series are arranged from the most likely solutions to the least likely solutions. I also recommend making a backup before attempting any of the steps in either part. Some of the techniques can potentially destroy Windows 98, your applications, or both, if performed incorrectly or if your system is in bad shape.
Use your log file
If the techniques in part one didn’t solve your problem, it’s time to look at the log file that I suggested you create. Analyze the file for anything that the GPFs have in common. For example, do the errors always occur in one particular application? Maybe the errors always occur when you perform some specific task.
Problems with one app or group of apps
In some cases, the errors always occur with one application or group of applications. For example, you might find that the errors occur only when you’re working in Microsoft Word or only when you’re working in the various members of the Microsoft Office suite. If this is the case, there are several possibilities.
One possibility is that the application is corrupted. Perhaps a hard disk error has made a file unreadable. Another possibility is that some file associated with the application has been deleted. Still another might be that some other program is interfering with the application or applications.
Remember that most Windows programs depend heavily on DLL files. It’s not at all uncommon for two different applications that were written by two different companies to use a DLL with the same name. When this happens, there’s a good chance these files are incompatible. If an application should overwrite an existing DLL with its own version, then the application that depended on the original DLL could malfunction, possibly generating a GPF.
The solution to all of these problems is simple—reinstall the malfunctioning application. Just remember to make a backup since a DLL conflict could potentially cause another program to malfunction after you reinstall the original program. If you still end up having a DLL conflict between two programs you depend heavily on, your best bet is to upgrade to Windows 2000. Windows 2000 is written to prevent DLL conflicts, or as Microsoft puts it, DLL hell.
Problems with a common function
If no one program or group of programs is causing the problem, check your log to see if a common function is the culprit. For example, it’s not unusual for a program to generate a GPF when you try to print. The reason for this is that Windows is designed as a modular operating system, which includes its own printer routines. No Windows-based program contains its own print code. The files Windows uses for printing rely on a driver that adapts the print routines to your specific printer.
The method for handling a common function problem depends on where the process breaks down. In the case of a print routine causing the problem, first download the latest driver for your printer. After installing it and rebooting your computer, try printing again. If the operation still fails, you may end up having to reinstall Windows. Before you reload Windows, however, read the last section of this Daily Drill Down for information on reinstalling Windows in the safest manner possible.
I mentioned earlier that a GPF could occur when a program or driver tries to access a memory location that’s invalid or is off limits. Because of this possibility, it makes sense to look at your drivers as well as your programs. The techniques for troubleshooting driver problems are potentially destructive. Therefore, please make sure you have a good backup before continuing.
Once you’ve made a backup, list all the hardware in your system. The list should include any devices that require special drivers. For example, include video cards, network cards, and modems. Don’t worry about listing components that always use a standard Windows 98 driver. Your system board, hard drives, and CD-ROM drive fall into this category. Once you’ve made your list, download the latest Windows 98 drivers for each device from the manufacturer’s Web site.
The next step will make you wince. You’ll need to remove your old drivers. From Control Panel, double-click the System icon. Windows 98 will display the System Properties window. Select the Device Manager tab. Device Manager lists all your system’s installed hardware (see Figure A).
|You can view, delete, and modify all your installed hardware in the System applet’s Device Manager tab.|
Expand each device category by clicking on the plus sign (+). Next, select each hardware component from your list, and click the Remove button. This will uninstall the driver associated with each device. Be sure to uninstall the video card (listed under Display Adapters) last. After each device has been uninstalled, click the OK button to close Device Manager. You may now reboot the computer. When the system reboots, Windows will detect each device in the computer, one at a time. As each device is detected, supply the driver that you’ve downloaded for the device. Although Windows 98 doesn’t always require it, I recommend rebooting after you install each driver. Doing so works better with Plug and Play to prevent device conflicts. Once all the new device drivers have been loaded, you may have to manually reconfigure some settings, such as your network connection. After your system is back to normal, try to reproduce the GPF to see if modifying the installed devices has corrected the problem.
Check the hard disk
If you still haven’t been able to correct the problem, there may be some corruption on your hard disk. To test for this, run the ScanDisk program against all of your system’s hard drives. Many times, errors such as cross-linked files can cause GPFs. Sometimes clusters become disconnected from a file chain, making a file invalid. If ScanDisk doesn’t report any errors, search your hard drives for files that end in the .chk extension. If you find a lot of them, it’s a good indication that you may need to reload Windows 98, your applications, or perhaps both. If you do decide to reload Windows, read the section below on how to avoid problems when reloading it.
If ScanDisk appears to run normally, try defragmenting the hard disk to see if the defragmentation program runs successfully. I’ve seen situations in which ScanDisk runs normally, but Disk Defragmenter either times out on particular clusters, runs extremely slowly, or detects problems that ScanDisk can’t fix. If any of these situations occur, it’s time to format your hard disk and restore your backup. While formatting your hard disk can correct many types of disk problems, if clusters are slow or are timing out, it may be time for a new hard disk.
When nothing works
If none of these techniques work, you’re not completely out of options. One possibility is that a hardware problem may be to blame. You might try replacing the system’s memory to see if that corrects the problem. Since memory can get expensive, see if you can borrow memory from another machine before running to the store for more. If you have two identical machines, you could also try swapping the hard disks. If the error goes away on your troubled machine and occurs on your working machine, you have evidence that the problem is hardware-related, and you can begin the troubleshooting process.
If you still haven’t solved the GPF problem, try reloading Windows 98. There are a couple of ways of doing this. Whichever method you choose, make sure that you have a good backup. The first method I recommend is to load Windows on top of the existing copy. When doing so, make sure you don’t overwrite any file that’s newer than what you’re installing. Doing so can cause big problems, especially if you’ve installed service packs or upgraded to a newer version of Internet Explorer. Some applications, such as Microsoft Office 2000, also update Windows system files, and you can cause all sorts of problems by overwriting these files.
Formatting your hard drive
If reloading Windows still doesn’t correct the problem, it’s time to do something drastic. Make sure that you have the installation media for all of your applications and drivers for all of your hardware. Once you’ve verified this, format your hard disk. After doing so, load a fresh copy of Windows. Once Windows has been loaded, restore all of your data from the backup. Now, load your applications from the original installation media, one at a time. After loading each application, test for the GPF just in case one particular application is causing problems. This method should be used as a last resort, but it almost always works for removing GPFs.
Often, GPFs occur that are difficult to troubleshoot. In this Daily Drill Down, I’ve covered some less obvious causes of GPFs and presented techniques for using your log file and the Windows 98 Device Manager to hunt down the causes of these errors within your system and remove them.
Brien M. Posey is an MCSE who works as a freelance technical writer and as a network engineer for the Department of Defense. If you’d like to contact Brien, send him an e-mail. (Because of the large volume of e-mail he receives, it's impossible for him to respond to every message. However, he does read them all.)The authors and editors have taken care in preparation of the content contained herein but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.