Microsoft KB Archive/319508

= An Invalid Page Fault Occurs in Kernel32.dll Because of an Uninitialized Critical Section =

Article ID: 319508

Article Last Modified on 2/1/2007

-

APPLIES TO


 * Microsoft Windows Millennium Edition
 * Microsoft Windows 98 Second Edition
 * Microsoft Windows 98 Standard Edition
 * Microsoft Windows 95
 * Microsoft Windows 95
 * Microsoft Windows 95
 * Microsoft Windows 95
 * Microsoft Windows 95

-



This article was previously published under Q319508



SYMPTOMS
When you run a program, you may receive an error message that is similar to one of the following error messages:  Windows 95, Windows 95 OSR, Windows 98, Windows 98 Second Edition

This program has performed an illegal operation and will be shut down.

If the problem persists, contact the program vendor.

Details:

caused an invalid page fault in module KERNEL32.DLL at.

 Windows Millennium Edition (Me)

has caused an error in KERNEL32.DLL. Program_name will now close.

If you continue experiencing problems, try restarting your computer.



Notes:
 * Program_name refers to the title of the program that is improperly using the uninitialized critical section.
 * For specific information about the  values, see the &quot;Fault Addresses&quot; topic in the &quot;More Information&quot; section of this article.
 * Windows Me does not include a Details option in the error message dialog box. See the &quot;Windows Me Fault Logging&quot; topic in the &quot;More Information&quot; section of this article.



CAUSE
The error message occurs if a program or driver calls the Win32 EnterCriticalSection function with the address of an uninitialized CRITICAL_SECTION object. In this situation, Windows is behaving as it is designed to. The software that is listed as the cause is responsible for the error. See the &quot;Critical Section Description&quot; topic in the &quot;More Information&quot; section of this article.



STATUS
This behavior is by design.



Fault Addresses
The following table documents the fault addresses that are displayed for the indicated versions of Windows (without any Kernel32.dll updates), and with the Kernel32.dll updates that are documented in the indicated Microsoft Knowledge Base articles installed:

Kernel32 version   Fault address  Windows version                         Article - 4.90.3000 0177:BFF6BB07  Me                 4.90.3000            - 4.10.2224 0167:BFF7B9A6  98 Second Edition  4.10.2222A           Q272137 4.10.2223 0167:BFF7B9A6  98 Second Edition  4.10.2222A           Q262516 4.10.2222 0167:BFF7B9A6  98 Second Edition  4.10.2222A           - 4.10.2000 015F:BFF7B997  98                 4.10.1998            Q222131 4.10.1999 015F:BFF7B997  98                 4.10.1998            Q272137 4.10.1998 015F:BFF7B997  98                 4.10.1998            - 4.03.1216 0157:BFF79F97  95                 4.00.950B or C       Q175086 4.03.1212 0157:BFF79FA4  95                 4.00.950B (OSR 2.1)  Note 1 4.00.1112 0137:BFF99C00  95                 4.00.950B (OSR 2)    Q175086 4.00.1111 0137:BFF9A3C0  95                 4.00.950B (OSR 2)    - 4.00.952  0137:BFF998AC  95                 4.00.950A            Q175086 4.00.951  0137:BFF9A08C  95                 4.00.950A            Q148336 4.00.950  0137:BFF9A07C  95                 4.00.950A            -

Note 1: Windows 95 OSR2 with the Universal Serial Bus (USB) Supplement installed has the same Kernel32.dll version as OSR 2.1. See the &quot;References&quot; section in this article for links to the indicated Microsoft Knowledge Base articles.

Windows Me Fault Logging
To verify the fault address, open the fault log (the Faultlog.txt file is located in the Windows folder):
 * 1) Click Start, point to Programs, point to Accessories, point to System Tools, and then click System Information.
 * 2) On the Tools menu, click Fault Log. The Faultlog.txt file is opened, with the most recent fault information at the end of the file.

Critical Section Description
The threads of a single process can use a critical section object for mutual-exclusion synchronization. The process is responsible for allocating the memory that is used by a critical section object, which it can do by declaring a variable of type CRITICAL_SECTION. Before using a critical section, some thread of the process must call the InitializeCriticalSection or InitializeCriticalSectionAndSpinCount function to initialize the object.



General
158238 How to Determine the Version of Windows 95/98/Me in Use

253756 Availability of Universal Serial Bus Support in Windows 95

Microsoft Windows 95
148336 Memory Leak in Windows 95 Kernel Using Windows Sockets

Windows 95 and Windows 95 OSR
175086 Regional Settings Specified in User Profile Are Not Applied

Windows 98
222131 Computer Hangs Clicking Close Button in Close Program Dialog Box

Windows 98 and Windows 98 Second Edition
272137 GetShortPathName Does Not Work When It Is Passed a Long File Name from A Novell NetWare Server

Windows 98 Second Edition
262516 Close Program Dialog Box Hangs If You Click the Title Bar with a USB Mouse

Keywords: kbprb KB319508

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.