A stop error or exception error, commonly called the blue screen of death (BSoD) or blue screen, is an error screen displayed on Windows computers following a fatal system error. It indicates a system crash, in which the operating system has reached a condition where it can no longer operate safely. This is caused by many different problems, such as a general hardware failure or a crucial process terminating unexpectedly.
History
BSoDs have been around since Windows 1.0. In Windows 1.x-2.x, if Windows found a newer DOS version than it expected it would give a blue screen with white text saying "Incorrect DOS version" followed by a list of loaded kernel modules and their respective memory addresses, before starting normally. This BSoD, however, was triggered by a bug in the logo code, and was not an actual crash screen; when the system did crash, it would either lock up or exit to DOS. Windows 3.0 had a modal dialog for displaying important system messages, usually from digital device drivers in 386 enhanced mode, or other situations where a program could not run unless an issue was resolved.
In Windows 3.1, this modal dialog was changed from black to blue, and it would be displayed when pressing Ctrl+Alt+Del (which opens Task Manager) while no programs were unresponsive. Windows 3.x continued to exit to DOS if an error was severe enough.
BSoDs have been present in Windows NT 3.1 (the first version of the Windows NT family, released in 1993) and all Windows operating systems released afterwards. BSoDs can be caused by poorly written device drivers or malfunctioning hardware, such as faulty memory, power supply issues, overheating of components, or hardware running beyond its specification limits. In the Windows 9x era, incompatible DLLs or bugs in the operating system kernel could also cause BSoDs. Because of the instability and lack of memory protection in Windows 9x, BSoDs were much more common.
Incorrect attribution
On September 4, 2014, several online journals, including Business Insider, DailyTech, Engadget, Gizmodo, Lifehacker, Neowin, Softpedia, TechSpot, The Register, and The Verge incorrectly attributed the creation of the Blue Screen of Death to Steve Ballmer, Microsoft's former CEO, citing an article by Microsoft employee Raymond Chen, entitled "Who wrote the text for the Ctrl+Alt+Del dialog in Windows 3.1?". The article focused on the creation of the first rudimentary task manager in Windows 3.x, which shared visual similarities with a BSoD. In a follow-up on September 9, 2014, Raymond Chen complained about this widespread mistake, claimed responsibility for revising the BSoD in Windows 95 and panned BGR.com for having "entirely fabricated a scenario and posited it as real". Engadget later updated its article to correct the mistake.
Formats
Until Windows 8 and Windows Server 2012, BSoDs showed silver text on a royal blue background with information about current memory values and register values. Windows Server 2012, Windows 8 and Windows 10 use a cerulean background.
Windows 95, 98 and ME BSoDs use 80×25 text mode. BSoDs in the Windows NT family use 80×50 text mode on a 720×400 screen. Windows XP, Vista and 7 BSoDs use the Lucida Console font. Windows 8, Windows Server 2012 use Segoe UI and render the BSoD contents at the boot framebuffer resolution, over top of the active resolution, with UEFI machines generally using the highest Graphics Output Protocol mode available, and with legacy BIOS machines either using 1024x768 (with the contents being squished due to the monitor being presumed to be widescreen) or the highest VESA BIOS Extensions mode available (should the BCDEdit parameter 'highestmode' be enabled). Windows 10 versions 1607 onwards uses the same format as Windows 8, but has a QR code which leads to a Microsoft survey about how the blue screen was caused.
Despite the "blue screen" name, in Windows 9x, the color of the message could be customized by the user. As of December 2016, Windows Insider builds of Windows 10 feature the same format as in public release versions, but with a dark green background instead of a blue one.
Windows NT
In the Windows NT family of operating systems, the blue screen of death (officially known as a stop error and referred to as "bug check" in the Windows software development kit and driver development kit documentation) occurs when the kernel or a driver running in kernel mode encounters an error from which it cannot recover. This is usually caused by an illegal operation being performed. The only safe action the operating system can take in this situation is to restart the computer. As a result, data may be lost, as users are not given an opportunity to save it.
The text on the error screen contains the code of the error and its symbolic name (e.g. "0x0000001E, KMODE_EXCEPTION_NOT_HANDLED") along with four error-dependent values in parentheses that are there to help software engineers fix the problem that occurred. Depending on the error code, it may display the address where the problem occurred, along with the driver which is loaded at that address. Under Windows NT, the second and third sections of the screen may contain information on all loaded drivers and a stack dump, respectively. The driver information is in three columns; the first lists the base address of the driver, the second lists the driver's creation date (as a Unix timestamp), and the third lists the name of the driver.
By default, Windows will create a memory dump file when a stop error occurs. Depending on the OS version, there may be several formats this can be saved in, ranging from a 64kB "minidump" (introduced in Windows 2000) to a "complete dump" which is effectively a copy of the entire contents of physical memory (RAM). The resulting memory dump file may be debugged later, using a kernel debugger. For Windows WinDBG or KD debuggers from Debugging Tools for Windows are used. A debugger is necessary to obtain a stack trace, and may be required to ascertain the true cause of the problem; as the information on-screen is limited and thus possibly misleading, it may hide the true source of the error. By default, Windows XP is configured to save only a 64kB minidump when it encounters a stop error, and to then automatically reboot the computer. Because this process happens very quickly, the blue screen may be seen only for an instant or not at all. Users have sometimes noted this as a random reboot rather than a traditional stop error, and are only aware of an issue after Windows reboots and displays a notification that it has recovered from a serious error. This happens only when the computer has a function called "Auto Restart" enabled, which can be disabled in the Control Panel which in turn shows the stop error.
Microsoft Windows can also be configured to send live debugging information to a kernel debugger running on a separate computer. If a stop error is encountered while a live kernel debugger is attached to the system, Windows will halt execution and cause the debugger to break in, rather than displaying the BSoD. The debugger can then be used to examine the contents of memory and determine the source of the problem.
A BSoD can also be caused by a critical boot loader error, where the operating system is unable to access the boot partition due to incorrect storage drivers, a damaged file system or similar problems. The error code in this situation is STOP 0x0000007B (INACCESSIBLE_BOOT_DEVICE). In such cases, there is no memory dump saved. Since the system is unable to boot from the hard drive in this situation, correction of the problem often requires using the repair tools found on the Windows installation disc.
Details
Before Windows Server 2012, each BSoD displayed an error name in uppercase (e.g. APC_INDEX_MISMATCH), a hexadecimal error number (e.g. 0x00000001) and four parameters. The last two are shown together in the following format:
error code (parameter 1, parameter 2, parameter 3, parameter 4) error name
Depending on the error number and its nature, all, some, or even none of the parameters contain data pertaining to what went wrong, and/or where it happened. In addition, the error screens showed four paragraphs of general explanation and advice and may have included other technical data such the file name of the culprit and memory addresses.
With the release of Windows Server 2012, the BSoD was changed, removing all of the above in favor of the error name, and a concise description. Windows 8 added a sad-emoticon as well. The hexadecimal error code and parameters can still be found in the Windows Event Log or in memory dumps. Since Windows 10 Build 14393, Windows 10 has added QR code for quick troubleshooting.
Windows 9x
The blue screen of death frequently occurs in Microsoft's home desktop operating systems Windows 95, 98, and ME. In these operating systems, the BSoD is the main way for virtual device drivers to report errors to the user. It is internally referred to by the name of "_VWIN32_FaultPopup
". A Windows 9x BSoD gives the user the option either to restart or continue.
The most common BSoD is an 80×25 screen which is the operating system's way of reporting an interrupt caused by a processor exception; it is a more serious form of the general protection fault dialog boxes. The memory address of the error is given and the error type is a hexadecimal number from 00 to 11 (0 to 17 decimal). The error codes are as follows:
- 00: Division fault
- 01: Startup Error
- 02: Non-Maskable Interrupt
- 03: Shutdown Error
- 04: Overflow Trap
- 05: Bounds Check Fault
- 06: Invalid Opcode Fault
- 07: "Coprocessor Not Available" Fault
- 08: Double Fault
- 09: Coprocessor Segment Overrun
- 0A: Invalid Task State Segment Fault
- 0B: Not Present Fault
- 0C: Stack Fault
- 0D: General Protection Fault
- 0E: Page Fault
- 0F: Error Message Limit Exceed
- 10: Coprocessor Error Fault
- 11: Alignment Check Fault
Reasons for BSoDs include:
- Problems that occur with incompatible versions of DLLs: Windows loads these DLLs into memory when they are needed by application programs; if versions are changed, the next time an application loads the DLL it may be different from what the application expects. These incompatibilities increase over time as more new software is installed, and is one of the main reasons why a freshly installed copy of Windows is more stable than an "old" one.
- Faulty or poorly written device drivers
- Hardware incompatibilities
Damaged hardware may also cause a BSoD.
In Windows 95 and 98, a BSoD occurs when the system attempts to access the file "c:\con\con
","c:\aux\aux
",or"c:\prn\prn
" on the hard drive. This could be inserted on a website to crash visitors' machines. On 16 March 2000, Microsoft released a security update to resolve this issue.
One famous instance of a Windows 9x BSoD occurred during a presentation of a Windows 98 beta given by Bill Gates at COMDEX on April 20, 1998: The demo PC crashed with a BSoD when his assistant, Chris Capossela, connected a scanner to the PC to demonstrate Windows 98's support for Plug and Play devices. This event brought thunderous applause from the crowd and Gates replied (after a nervous pause): "That must be why we're not shipping Windows 98 yet."
Windows CE
The simplest version of the blue screen occurs in Windows CE (except in Pocket PC 2000 and Pocket PC 2002). The blue screen in Windows CE 3.0 is similar to the one in Windows NT.
Similar screens
Stop errors are comparable to kernel panics in macOS, Linux, and other Unix-like systems, and to bugchecks in OpenVMS. Windows 3.1, like some versions of macOS, displays a Black Screen of Death instead of a blue one. Windows 98 displays a red error screen raised by the Advanced Configuration and Power Interface (ACPI) when the host computer's BIOS encounters a problem. The bootloader of the first beta version of Windows Vista also displays a red error screen in the event of a boot failure.