12.978 bytes

Service Hints & Tips

Document ID: GSMH-39GEPW

Crossbrand - All about General Protection Faullts

Applicable to: World-Wide

Service Information:
Troubleshooting Guide for General Protection Faults. This information is from Microsoft and may apply to more than one brand of computer. It is not PS/1 or Aptiva-specific.

Summary:
The following information is a list of steps to troubleshoot general protection (GP) faults in Works for Windows.

File Descriptions:
KRNL386.EXE:
Handles memory management, loads and executes applications, and performs file input/output (I/O) through MS-DOS.

USER.EXE:
Controls user input and output, including keyboard, mouse, sound driver, timer, and communication ports, and Windows management.

GDI.EXE:
(Graphical Device Interface) Interface between Windows applications and graphical hardware devices (that is, video display cards and printers).

To troubleshoot GP faults, use the following steps:
1. Check for damaged files on your hard drive. To do this, exit from Windows and then, at the MS-DOS prompt, type:

CHKDSK /F

See your MS-DOS manual for details.

2. Make sure you have a VGA driver installed. To check this, choose Run from the File menu in Program Manager, and type:
setup

See your Windows manual for information about adding and changing drivers.

3. Run Windows in standard mode by starting it with the WIN /S command at the MS-DOS command prompt). If standard mode is successful, try the following debug mode by typing the following at the MS-DOS command prompt:

win /d:xvfs

In this command, "x" excludes all of the adapter area from the range of memory that Windows scans to find unused space; "v" specifies that the ROM routine handles interrupts from the hard disk drive controller; "f" turns off 32-bit disk access; and "s" specifies that Windows should not use ROM address space between F000:0000 and 1 MB for a break point.

If starting Windows in the above debug mode works, try using each parameter individually to narrow the testing scope (for example, use the win /d:x command). Add the following lines to the [386enh] section of the SYSTEM.INI file, depending on which parameter worked correctly:
- If "x" worked: emmexclude=A000-FFFF
- If "v" worked: VirtualHDIRQ=OFF
- If "s" worked: SystemROMBreakpoint=OFF
- If "f" worked: 32BitDiskAccess=FALSE

The EMMEXCLUDE ("x") is a temporary solution. Check your hardware documentation to narrow the addressing.

4. You should be using the following minimum configuration.
a. CONFIG.SYS, AUTOEXE.BAT, and WIN.INI settings:

CONFIG.SYS AUTOEXEC.BAT WIN.INI
---------- ------------ -------
HIMEM.SYS SET TEMP= ;load=
files=50 PATH ;run=
buffers=30 PROMPT
CD-ROM Driver MSCDEX

b. Shell=PROGMAN.EXE
c. Empty Startup Group
5. Your SYSTEM.INI settings should be:

keyboard.drv=keyboard.drv
system.drv=system.drv
mouse.drv=mouse.drv
display.drv=vga.drv

6. Make sure the Set Temp statement points to a logical and existing path.
7. Ensure the files are decompressed properly.
8. Re-expand possible corrupt files.
9. Install Windows on an uncompressed drive.
10. Check Available Memory (both Hard Drive and RAM).
11. Disable TrueType fonts.
12. Disable ATM and/or Facelift.
13. Disable your network (if you have one).
14. Make sure your working directory is in your AUTOEXEC.BAT path.
15. Remove your mouse driver.
16. Remove any unnecessary hardware devices from SYSTEM.INI.
17. Rename the MSWORKS.INI file and restart Works. Works 2.0 and 3.0 will rebuild the .INI file when you restart the application. However, even though Works 2.0 and 3.0 will rebuild the .INI during startup, it may not replace all necessary information, such as the Wizard references.
18. Use MSD to check the BIOS.
19. Make sure the A20 Handler is enabled.
20. Use the xcopy & fc /b command (only for CD-ROM and Multimedia issues).
21. As a LAST resort:
- Reinstall Windows in a NEW directory.
- Reinstall Works for Windows in a NEW directory.

Resolving General Protection Fault errors:
A General Protection Fault (GPF) in Windows 3.1 can occur when one program in memory attempts to access another area of memory not assigned to it. In other words, something running within the Windows environment has made a call to a location in memory that it did not have access to, potentially overwriting and corrupting other program code in that area of memory. When Windows detects this, it closes down the offending program and announces that a GPF has occurred.

Another situation where a GPF may occur involves the passing of parameters between applications and the Windows environment. Invalid parameters affect the performance of Windows and its applications by forcing an invalid instruction. This is usually the result of an application's internal program code incorrectly passing specific data that could not be correctly interpreted for Windows or another Windows application. The result is often a GPF.

If you continually receive this error, try shutting down all other applications before running the application(s) giving you trouble. You may also want to unload any TSR (Terminate and Stay Resident) programs that you are using. These are usually loaded from the C:\CONFIG.SYS and/or C:\AUTOEXEC.BAT and typically run in the background until they are needed (like a screen saver, for example). If you have to perform a cold boot (power-off, power-on), the severity of the general protection fault is usually greater than if you can continue by pressing Ctrl Alt Delete.

To attempt correcting General Protection Fault errors, perform the steps below (given in order of the most likely solutions on down to those that may help solve the problem):

1. Check for incompatible TSR programs or unsupported device drivers in your AUTOEXEC.BAT and CONFIG.SYS files. Put a "REM" comment in front of each statement one at a time and try running the application. This trial and error process will help to find the problem item.
2. Increase or add the following statements in your CONFIG.SYS file:
FILES=50
BUFFERS=25
STACKS=9,256
3. Make certain that in your PATH statement WINDOWS is the first directory mentioned.
4. Edit your HIMEM.SYS statement by putting a parameter at the end of the
line as follows:

DEVICE=C:\DOS\HIMEM.SYS /M:1

5. Try starting Windows from the C:\> prompt with the command: WIN /3 /D:X This command will exclude certain memory mapping addresses if you are using EMM386.
6. Perform CHKDSK on your hard drive to check for corrupt files.
7. Reinstall the software that caused the error message. Even if the program is compatible with Windows, you may want to try installing the software through the C:\> prompt. Be sure to create an icon and PIF file.

Search Keywords

Windows

Hint Category

DOS/Windows 3.x

Date Created

04-09-96

Last Updated

22-01-99

Revision Date

22-06-99

Brand

Cross Brand

Product Family

Various

Machine Type

Various

Model

Various

TypeModel

Retain Tip (if applicable)

Reverse Doclinks
and Admin Purposes