Category Archives: Windows Internals

BSoD Error Codes

Long ago, I read a book on Windows named “Windows XP Annoyances”  [O’Reilly] by David. A. Karp.

In the book, lots of useful information is provided, including details about Blue Screen error codes, that came to be very helpful for me.

There are probably 100 types of BSoD error codes.

image_thumb[2]

However, only about 20 happen frequently enough that they might imply that an actual problem exists. More than likely, you’ve probably seen at least one of the following stop messages:

Attempted Write To Read-only Memory (stop code 0X000000BE)

A faulty driver or service is typically responsible for this error, as is outdated firmware. If the name of a file or service is specified, try uninstalling the software (or rolling back the driver if it’s an upgrade).

Bad Pool Caller (stop code 0X000000C2)

Causes and remedies are similar to "Attempted Write To Read-only Memory," above. Additionally, this error might also be the result of a defective hardware device.

If you encounter this message while upgrading to Windows XP, it may mean that one or more devices in your system are not compatible with XP. Try disconnecting unnecessary devices, or at least looking for updated drivers and firmware. Also, disable any anti-virus software you may have running.

Data Bus Error (stop code 0X0000002E)

This can be caused by defective memory, including system RAM, the Level 2 cache, or even the memory on your video card. Other causes of this error include serious hard disk corruption, buggy hardware drivers, or physical damage to the motherboard.

Driver IRQL Not Less Or Equal (stop code 0X000000D1)

Drivers programmed to access improper hardware addresses typically cause this error. Other and remedies causes are similar to "Attempted Write To Read-only Memory," earlier.

Driver Power State Failure (stop code 0X0000009F)

This error is caused by an incompatibility between your computer’s power management and one or more installed drivers or services, typically when the computer enters the "hibernate" state. If the name of a file or service is specified, try uninstalling the software (or rolling back the driver if it’s an upgrade). Or, try disabling Windows’ support for power management.

Driver Unloaded Without Cancelling Pending Operations (stop code 0X000000CE)

Causes and remedies are similar to "Attempted Write To Read-only Memory,"

Driver Used Excessive Ptes (stop code 0X000000D8)

Causes and remedies are similar to "No More System PTEs," given later below

Hardware Interrupt Storm (stop code 0X000000F2)

This error occurs when a hardware device (such as a USB or SCSI controller) fails to release an IRQ, a condition typically is caused by a buggy driver or firmware. This error can also appear if two devices are incorrectly assigned the same IRQ.

Inaccessible Boot Device (stop code 0X0000007B)

You may see this error during Windows startup if Windows cannot read data from the system or boot partitions. Faulty disk controller drivers are often to blame, but this problem can also be caused by hard disk errors, or even a corrupted boot.ini file.

If all is well with your drivers and your drive and you haven’t been messing with the boot.ini file (such as while installing multiple operating systems), check your system BIOS settings.

If you encounter this message while upgrading to Windows XP, it may mean that one or more devices in your system are not compatible with XP. Try disconnecting unnecessary devices, or at least looking for updated drivers and firmware. Also, disable any anti-virus software you may have running.

Kernel Data Inpage Error (stop code 0X0000007A)

This error implies a problem with virtual memory, often in that Windows wasn’t able to read data from—or write data to—the swap file. Possible causes include bad sectors, a virus, improper SCSI termination, bad memory, or physical damage to the motherboard.

Kernel Stack Inpage Error (stop code 0X00000077)

Causes and remedies are similar to "Kernel Data Inpage Error," earlier in this post.

Kmode Exception Not Handled (stop code 0X0000001E)

A faulty driver or service is sometimes responsible for this error, as are memory and IRQ conflicts, and faulty firmware. If the name of a file or service is specified, try uninstalling the software (or rolling back the driver if it’s an upgrade).

If the Win32k.sys file is mentioned in the message, the cause may be third-party remote control software.

This error can also be caused if you run out of disk space while installing an application or if you run out of memory while using a buggy application with a memory leak. Developers may wish to use the poolmon.exe utility to help isolate the problem, as described in Microsoft Knowledge Base article Q177415.

Mismatched Hal (stop code 0X00000079)

The currently-installed Hardware Abstraction Layer (HAL) must match the type of computer on which Windows XP is installed, or you may see this error. For example, if you use a HAL intended for a dual-processor system on a single-processor motherboard, Windows may not start. The best way to correct problems with the HAL is to reinstall Windows XP.

This error can also be caused by out-of-date Ntoskrnl.exe or Hal.dll files, so if you’ve recently attempted to repair these files on your system, look for backups of the original versions.

No More System PTEs (stop code 0X0000003F)

Page Table Entries (PTEs) are used to map RAM as it is divided into page frames by the Virtual Memory Manager (VMM). This error usually means that Windows has run out of PTEs.

Aside from the usual assortment of faulty drivers and services that can cause all sorts of problems, this error can also occur if you’re using multiple monitors.

If you find that you’re experiencing this error often, you can increase Windows’ allocation of PTEs with this procedure:

  1. Open the Registry Editor

  2. Expand the branches to HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

  3. Double-click the PagedPoolSize value, enter 0 for its value data, and click OK.

  4. Next, double-click the SystemPages value. If you’re using multiple monitors, enter a value of 36000 here. Otherwise, enter 40000 if you have 128MB of system RAM or less, or 110000 if you have more than 128MB of RAM.

  5. Click OK and then close the Registry Editor when you’re done. The change will take effect when you restart Windows.

NTFS File System (stop code 0X00000024)

This is caused by an problem reported by Ntfs.sys, the driver responsible for reading and writing NTFS volumes

If you’re using the FAT32 file system, you may see a similar message (with stop code 0X00000023).

Causes include a faulty IDE or SCSI controller, improper SCSI termination, an overly-aggressive virus scanner, or errors on the disk (try testing it with Chkdsk). See the discussion of SCSI controllers in Section 6.4 for more information.

To investigate further, open the Event Viewer (eventvwr.msc), and look for error messages related to SCSI or FASTFAT (in the System category), or Autochk (in the Application category).

Page Fault In Nonpaged Area (stop code 0X00000050)

Causes and remedies are similar to "Attempted Write To Readonly Memory," earlier in this post.

Status Image Checksum Mismatch (stop code 0Xc0000221)

Possible causes for this error include a damaged swap file, or a corrupted driver. See "Attempted Write To Readonly Memory," earlier in this post, for additional causes and remedies.

Status System Process Terminated (stop code 0Xc000021A)

This error indicates a problem with either Winlogon.exe or the Client Server Runtime Subsystem (CSRSS). It can also be caused if a user with administrator privileges has modified the permissions of certain system files such that Windows cannot read them. In order to fix the problem, you’ll have to install a second copy of Windows XP, and then repairing the file permissions from there.

Thread Stuck In Device Driver (stop code 0X000000EA)

Also known as the infamous "infinite loop" problem, this nasty bug has about a hundred different causes. What’s actually happening is that your video driver has essentially entered an infinite loop because your video adapter has locked up. Microsoft has posted a solution on their web site that involves disabling certain aspects of video acceleration, but I’ve never encountered an instance where this worked. Instead, try the following:

  • Try upgrading your computer’s power supply. A power supply of poor quality or insufficient wattage will be unable to provide adequate power to all your computer’s components, and may result in a "brown out" of sorts in your system. Note that newer, more power-hungry video adapters are more susceptible to this problem.

  • Make sure you have the latest driver for your video card. If you already have the latest driver, try "rolling back" to an older driver to see if that solves the problem.

  • Make sure you have the latest driver for your sound card, if applicable. Also, make sure your sound card is not in a slot immediately adjacent to your video card.

  • Make sure your video card is properly seated in its AGP or PCI slot. If it’s a PCI card, try moving it to a different slot.

  • Inspect your video card and motherboard for physical damage.

  • Try messing with some of your system’s BIOS settings, especially those concerning your AGP slot or video subsystem. For example, if your AGP slot is set to 2x mode, and your video adapter only supports 1x AGP mode, then you’ll want to change the setting accordingly.

  • Make sure your computer—and your video card—are adequately cooled. Overheating can cause the chipset on your video card to lock up.

  • Check with the manufacturer of your motherboard for newer drivers for your motherboard chipset.

    For example, the "infinite loop" problem is common among motherboards with VIA chipsets and nVidia-based video cards. Visit the VIA web site (http://www.viaarena.com/?PageID=64) for updated drivers and additional solutions.

  • Try replacing your system’s driver for the Processor-to-AGP Controller. Open Device Manager (devmgmt.msc), expand the System devices branch, and double-click the entry corresponding to your Processor-to-AGP Controller. Choose the Driver tab, and click Update Driver to choose a new driver. Unless you can get a newer driver from the manufacturer of your motherboard chipset, try installing the generic "PCI standard PCI-to-PCI bridge" driver shown in the Hardware Update Wizard.

  • If your motherboard has an on-board Ethernet adapter, try disabling the "PXE/Remote Wake Up" option in your system BIOS.

  • If you’re using a dual-processor motherboard, Windows XP is probably loading a HAL (Hardware Abstraction Layer) for a MPS (Multiple Processor System). Such HALs support the I/O APIC (Advanced Programmable Interrupt Controller), a method of accommodating more than 15 IRQs in a single system. Unfortunately, APIC can cause problems with AGP-based video cards. Try changing your HAL to "Standard PC" to see if that solves the problem

Unexpected Kernel Mode Trap (stop code 0X0000007F)

Typical causes of this error include defective memory, physical damage to the motherboard, and excessive processor heat due to overclocking (running the CPU faster than its specified clock speed).

Unmountable Boot Volume (stop code 0X000000ED)

This means that Windows was unable to mount the boot volume, which, if you have more than one drive, is the drive containing Windows. This can be caused by using the wrong cable with a high-throughput IDE controller (more than 33 mb/sec); try an 80-pin cable instead of the standard 40-pin cable. See also "Inaccessible Boot Device,".

[My Journal (http://sanil-singh.spaces.live.com/blog)]