Win98 C:\Windows\FONTS EXPLORER protection fault KRNL386.EXE 0002:00001206
Posted on 2005-04-16
Win98 C:\Windows\FONTS EXPLORER protection fault KRNL386.EXE 0002:00001206
Can't cannot open fonts folder
Fonts folder error
Windows 98 Win98
Windows 98 SE Win98se
EXPLORER caused a general protection fault in module KRNL386.EXE at 0002:00001206
Winamp5 Songticker Font
To all Members and Experts:
This question has been posted with the consent of Experts-Exchange administrative staff and is not intended to attract any comments as it will be immediately saved as a PAQ (Previously Answered Question).
Why? Because I scratched my head over this problem for two days until I finally discovered the cause, and realised how easily it could have been resolved. If, by having this page indexed by the key words common to this problem, it can save Members or Experts some unnecessary work such as restoring an entire "Fonts" folder from DOS, or reinstalling Windows, then it will have been worth typing it up.
Hopefully the key words will index it in searches for related problems.
Applies to Windows 98 and Windows 98SE.
After reading the scenario below and ascertaining that the criteria are met, scroll to last paragraph for a quick summary fix ("SUMMARY FOR EXPERTS").
When trying to open C:\Windows\FONTS folder from within Windows Explorer (standard folder-view, "My Computer"-view, or Control Panel's "Fonts" icon, the fonts begin to show as normal but the following error message appears:
This program has performed an illegal operation and will be shut down.
EXPLORER caused a general protection fault
in module KRNL386.EXE at 0002:00001206.
EAX=00000300 CS=016f EIP=00001206 EFLGS=00000202
EBX=00000000 SS=0d2f ESP=000087de EBP=0000891c
ECX=00000000 DS=017f ESI=000087ee FS=0000
EDX=00000000 ES=0000 EDI=00000213 GS=017f
Bytes at CS:EIP:
8e c0 8b c1 26 8b 0e 32 00 8b d8 d3 e0 f6 d9 80
89380fb9 06670011 00000000 00003836 53010023 762f8254 5c3a4353 444e4957 5c53574f 746e6f66 41575c73 2e545335 004e4f46 00000000 f8480022 42c3020a
Only option available is "Close". You may see a DOS window (black box) flash briefly and then close. Desktop icons, taskbar, etc disappear then reload, but one or more icons normally in the System Tray (right of taskbar at the bottom of the screen next to the clock) have gone.
When you press Ctrl + Alt + Del, the same running tasks that you may be used to seeing are still listed, and Windows Explorer still seems to load OK at this point.
If you then try to open the C:\Windows\FONTS folder again, one of the following two messages may show:
1. Normal Windows Error Dialog:
Title bar - System Error
"There are not enough system resources to run this program.
Quit one or more programs and then try again".
2. A DOS Window appears and remains open showing "Finished" in the title bar.
The only screen output in the DOS box left is "Insufficient memory".
Behind the message box, in either of the above scenarios, the Desktop icons are gone along with the Start Menu, Taskbar, and System Tray.
The Task List (Ctrl + Alt + Del) has probably killed some running tasks, but the "Shut Down" button to close down the computer normally is still available. The system isn't locked up, it's just that you don't have a Start Menu, etc and Windows Explorer is no longer a running process.
Restarting the computer does not fix this persistent problem.
Standard "Fix" Suggestions to Ignore Meantime
Normally, you would be given advice to do one or more of the following things, but I urge you at this stage to TRY MY SOLUTION FIRST! (See heading - "TRY THIS POSSIBLE SOLUTION FIRST").
1. Reinstall Windows on top of itself
2. Rebuild your "Fonts" folder by booting to DOS, removing the existing fonts and/or folder, and then rebuilding it by extracting the original Windows 98 fonts from the installation CD
3. Extract fresh copies of system files like FONTEXT.DLL, KRNL386.EXE and EXPLORER.EXE from the Windows CD to the C:\Windows\System folder
4. Deleting the file "ttfCache" from C:\Windows\System and then rebooting.
Reasons why NOT to perform these suggestions:
Method 1 MAY fix the problem, but it may also be an unnecessary procedure after which you can experience miscellaneous errors that necessitate reinstallation of one or more programs plus some or all of the Windows Updates already installed.
Method 2 is laborious, has too much potential for error, and you could end up having to reinstall certain programs that have already installed their own fonts.
Method 3. Did NOT work with Fontext.dll in my case, at least not as a singular fix. Version conflicts can arise where system files have already been upgraded to higher versions by Windows Updates.
Method 4 DOES NOT fix THIS particular problem on its own, although it MIGHT fix other font problems.
TRY THIS POSSIBLE SOLUTION FIRST
Configure "Dr Watson" to intercept error
1. Shut down and then power back up again before proceeding.
2. Start Menu, then the "Run" option, and type DRWATSON. Click "OK".
It doesn't matter if you type drwatson or DRWATSON, but don't leave a space in the command.
3. A new icon appears in the System Tray next to the clock. RIGHT-Click on it and choose "Options" from the popup menu.
4. The standard settings are to save 10 log files to %Windir%\DRWATSON, which means the
C:\Windows\DRWATSON folder, where the log files will be saved as WATSONxx.WLG (where xx will be a number from 1 to 10).
Set the "Number of Instructions" from the standard 10 to about 50 or 60.
(The number doesn't matter - put it up to 100 if you want).
Leave the "Number of Stack Frames" set at 100.
Click in the circle that sets it to "Open New Windows in Advanced View".
Click "OK" to confirm the settings.
5. Now open the C:\Windows\DRWATSON folder in Windows Explorer, and delete any .WLG file types in that folder. They should display with the same icon as the one in the System Tray.
Recreate the Error Situation
1. Try to open your C:\Windows\FONTS folder in Windows Explorer again.
2. As the error messages appear, a new dialog box with a blue progress bar will show while Dr Watson gathers information.
3. IF Dr watson opens in a full tabbed dialog window, jump to step 5. If it just finishes, use the available method to shut down fully and then reboot the computer.
4. Start Menu > "Run" > DRWATSON > click OK. RIGHT click on the icon again, but this time choose "Open Log File". Browse to the C:\Windows\DRWATSON folder and double click on the only .WLG log file that should be in that folder.
5. Dr Watson will open as a new dialog with 10 tabs along the top. Maximize the window to see them all. If you only see one tab named "Diagnosis", then click the "View" Menu and then click "Advanced View" to show all the tabs.
6. Under the "Diagnosis" tab, in the top box, you may see a general diagnosis like:
"Windows Kernel core component used an uninitialized variable, attempted to access memory or a DLL that has been freed, or encountered some other nonspecific error" followed by the details of
the KRNL386.EXE error that was first displayed when the error occurred.
7. Open the "Details" tab at the right-hand side, and you will see a load of gibberish. This is "debug" information gathered by Dr Watson as the error occurred. Start scrolling down looking for a specific change in layout from that at the top of the list.
Analyze the log file
1. Scroll down past all of these section headings:
-- stack summary --
-- stack trace --
and past all the separate sections that look like this:
016f:00000dea eb58 jmp 0e44
016f:00000dec a30414 mov word ptr ,ax
016f:00000def 8ed8 mov ds,ax
When you get to -- stack dump -- slow down the scrolling!
The format changes to:
and you should see something like the following format in the last couple of lines of that section. It's the DOTTED LINES AT THE RIGHT YOU ARE LOOKING FOR:
020cf828 7fb65345 = FONTEXT.DLL:.data+0x345
-> 00 00 00 20 00 00 00 5c 56 61 72 46 69 6c 65 49 ... ...\VarFileI
020cf82c bff7b9c9 = KERNEL32.DLL!IsBadHugeReadPtr
You are close now, so scroll down slowly and look for the next sections where the format includes those dots at the right-hand side eg. :... ...\VarFile
2. IF the symptoms are EXACTLY as described in my "Scenario" section, then it is very likely that what you are looking for here is the name of a FONT file that is crashing the system.
The system file FONTEXT.DLL is the one that contains the icons that display for font files, the special menu's that are unique to the Fonts folder, all the dialog boxes that are used for listing fonts to be installed or removed, all the messages that are displayed through accessing the Fonts folder (messages and error messages), etc. In effect, FONTEXT.DLL IS your Fonts folder, and if it cannot read a damaged, corrupt, or badly written font, then it will cause this type of error message when Windows Explorer tries to open the Fonts folder.
You should get a section with FONTEXT listed several times to the right of 2 columns of numbers, and the dotted lines as shown above will be to the right of those lines.
Take a note of the word fragments against those dotted lines, and then scroll down to the next set of dotted lines and do likewise. It won't take you as long as reading the instructions will :-)
3. You should see, at the right-hand edge, the words FONTS, C:\WINDOWS\FONTS, and either .FON or .TTF after a word as you scroll down. These may be slightly staggered over a couple of dotted lines, but what you are looking for is the FILE name of a font file and also the common name that it adopts.
In MY case, the references were to "WA5ST.FON" which is the "Winamp5 Songtick" font, presumably used to display the scrolling details in the pseudo-LED screen of WinAmp. I have never installed Winamp, but I have run it as a standalone program and it appears to have installed its font without my knowledge. It had been a while since I had last opened my FONTS folder, so I had no idea of its existence.
FIX THE PROBLEM
1. Armed with this info, close DrWatson and open a DOS Window (Start Menu > Programs> MS-DOS Prompt).
2. Type the following command exactly and press the <Enter> key:
dir /on /p c:\windows\fonts
3. This will show a list of files in your Fonts folder, alphabetically sorted, with a prompt to press any key to see the next page of the listing. Something like this extract:
VIVALDIN TTF 64,240 05/12/95 21:00 vivaldin.ttf
WA5ST FON 16,384 02/12/03 11:59 WA5ST.FON <--- **
WEATHER TTF 17,964 17/08/95 20:00 WEATHER.TTF
WEBDINGS TTF 118,752 23/04/99 22:22 WEBDINGS.TTF
WINGDING TTF 81,000 23/04/99 22:22 WINGDING.TTF
Look to confirm that the font's FILE NAME is listed in the rightmost column.
4. Once you know for certain it is listed, continue to the end of the list and type the following command followed by the <Enter> key (this assumes the file name to be as per my example, but it will be different in your case):
IF the file name appears with a long underscore, like FTL_____.TTF, then it is better to copy its name from the list and then paste it after the "del" command. You SHOULD see some toolbar buttons at the top of this DOS Window. If not, then RIGHT-Click in the "Title Bar" at the very top of the window, and click the "Toolbar" menu option to tick it.
Click the "Mark" button at the left which is a dotted square.
Carefully scroll over just the filename, being careful not to include any extra space either side of it, and then click the "Copy" button immediately to the right of the "Mark" button. (This is greyed out until you select text).
This has copied the file name to memory, and you can scroll to the end of your file listing.
Type the first part of the command (del c:\windows\fonts\ ) and then click on the "Paste" button which is to the right of the "Copy" button. Now press the <Enter> key.
5. UNLESS an error message appears telling you that the file couldn't be deleted, keep the DOS Window open and type the command:
and press the <Enter> key.
6. If this has all been allowed so far, close the DOS Window and immediately reboot.
IF you received an error message to either of the DEL (delete) commands above, then you may have to remove the files' special attributes before deleting from DOS.
In that event, type the following commands before trying to delete the file(s) again:
attrib -h -r -s c:\windows\fonts\wa5st.fon
attrib -h -r -d c:\windows\system\ttfcache
7. Try and access the FONTS Folder after the system reboots.
PROBLEM NOT FIXED?
1. IF the same error persists, then it could be for one of the following reasons:
(a) Problem wasn't exactly the same as the scenario
(b) More than one font causing error
(c) Registry entries dictating the behaviour of the Fonts folder corrupt
(d) Special attributes for the Fonts folder incorrect
(e) Required file named "desktop.ini" missing from the Fonts folder
(f) System file FONTEXT.DLL corrupt or missing
(g) FONTEXT.DLL may be causing a "version conflict" Explorer.exe
(h) Other deeper problems that may require reinstallation of Windows
2. Suggested resolutions for the above possibilities:
(a) Ensure that the error message IS the same, or very nearly the same.
(b) Open Dr Watson Log File again and look for other font names
(c) Reinstall Windows on top of itself - best option
(d) Change attributes as follows:
Open a DOS Window and type attrib c:\windows\fonts
It should show as this below your command:
S FONTS C:\WINDOWS\FONTS
(The "S" means "System Folder").
If there is no "S", then type the following command to reset attribute(s):
attrib +s c:\windows\fonts
(e) Open a DOS window, and type the command:
If it shows anything different from this:
then type the following two commands:
attrib -h -r -s c:\windows\fonts\desktop.ini
A new blue DOS Window will open in front of this, and you can replace the existing text with that given above (ie. the [.ShellClassInfo] details) and save the file (File menu > Save).
Now close the blue Edit window, and type the following command to restore attributes:
attrib +h +s c:\windows\fonts\desktop.ini
(f) Insert Windows 98 CD and hold SHIFT key to stop it autorunning.
Start Menu > "Run" option > and type SFC > click "OK"
Select "Extract one file from installation disc" > type in file name FONTEXT.DLL.
Click "Start" button.
Click "Browse" button next to "Restore From" and navigate to the "win98" folder of the CD.
Click "Browse" button next to "Save File In" and navigate to the C:\Windows\System folder.
Click "OK" button and close the SFC Window once it finishes.
Immediately restart computer.
(g) and (h) Ask an expert about this in a new question.
This is not meant to be an exhaustive exploration of all errors concerning the FONTS folder.
It is intended to describe a very specific error for which the given solution should work, or should at least be tried before resorting to more complicated and extreme measures that could incur further problems or a lot more work.
The solution is deliberately given in full detail so that anyone can follow it.
Believe me, it is a pretty quick and painless exercise if you print the instructions, highlight the main steps, and then follow the instructions. It was 2 days before I latched onto it, and you've got a solution in 10 minutes !!
Hopefully this information will prove useful. I couldn't keep it to myself and live with my conscience ;-)
SUMMARY FOR EXPERTS
2. Start > Run > DRWATSON > OK
3. Configure for about 50 or more disassembly instructions
4. Delete old .wlg log files in %Windir%\DRWATSON
5. Replicate the Windows Explorer error situation
6. Allow Dr Watson to create log file then reboot
6. Open the .WLG log file under the "Details" tab
7. Look for TTF of FON names down the right side against dotted lines
(Should match up to instances of FONTEXT.DLL)
8. Do a DIR listing of the fonts folder in a DOS Window
9. Use the Copy/Paste buttons to paste file name if unusual
10. Del c:\windows\fonts\fontname.fon (or ttf)
(remove attributes as necessary)
11. Delete reference from registry key:
12. Start > Run > SFC > extract original FONTEXT.DLL from CD to be sure
13. Del c:\windows\system\ttfcache
(remove attributes as necessary)
14. Reboot and test access to Fonts folder in Explorer.