- Add about two dozen new bugcheck codes and strings.

- Major cleanup of exp.c to move out deprecated and old code.
- Use KdDebuggerNotPresent to determine if KDBG is there or not. KdDebuggerEnable is now set whenever booting with debugging -- even if only serial port or screen debugging.
- Complete cleanup and major rewrite/improvement of bugcheck code:
  - Moved stack dump routines to bug.c and cleaned them up. Next step is to remove most of them and implement them properly as part of RtlCaptureStackBackTrace and RtlWalkFrameChain.
  - Use InbvDisplayString for everything now. BSODs will only truly show on screen. (however, part of the KeBugCheckWithTf improvements, a special "if debugger enabled" BSOD will also be displayed for debugging purposes).
  - Do checksum calculation in bugcheck callbacks.
  - Detect and display which drivers belong to which EIP.
  - Implemented code to select the proper verbose BSOD message depending on the bug check code.
  - Also implemented code to detect a variety of "known" bug check codes and to recover more data on them, and/or modify them accordingly. Sadly ROS doesn't yet make use of most of these codes.
  - Factored out and split some code into individual routines.
  - Look and functionality is now identical to Windows XP.
  - Stack trace will only be shown if KDBG isn't connected. If KDBG is connected you can do "bt" anyway (which is more powerful).

svn path=/trunk/; revision=23794
This commit is contained in:
Alex Ionescu 2006-08-30 05:22:56 +00:00
parent 655e78f3cc
commit a9bb1c6668
8 changed files with 1268 additions and 727 deletions

View file

@ -142,7 +142,6 @@ static ISR_TABLE IsrTable[NR_IRQS][1];
#endif
#define TAG_ISR_LOCK TAG('I', 'S', 'R', 'L')
extern IDT_DESCRIPTOR KiIdt[256];
/* FUNCTIONS ****************************************************************/
@ -162,8 +161,8 @@ KeInitInterrupts (VOID)
*/
for (i=0;i<NR_IRQS;i++)
{
KiIdt[IRQ_BASE+i].a=(irq_handler[i]&0xffff)+(KGDT_R0_CODE<<16);
KiIdt[IRQ_BASE+i].b=(irq_handler[i]&0xffff0000)+PRESENT+
((IDT_DESCRIPTOR*)&KiIdt[IRQ_BASE+i])->a=(irq_handler[i]&0xffff)+(KGDT_R0_CODE<<16);
((IDT_DESCRIPTOR*)&KiIdt[IRQ_BASE+i])->b=(irq_handler[i]&0xffff0000)+PRESENT+
I486_INTERRUPT_GATE;
#ifdef CONFIG_SMP
for (j = 0; j < MAXIMUM_PROCESSORS; j++)

View file

@ -75,6 +75,7 @@ extern PVOID Ki386IopmSaveArea;
extern ULONG KeI386EFlagsAndMaskV86;
extern ULONG KeI386EFlagsOrMaskV86;
extern BOOLEAN KeI386VirtualIntExtensions;
extern KIDTENTRY KiIdt[];
/* MACROS *************************************************************************/
@ -145,6 +146,8 @@ extern KSPIN_LOCK DispatcherDatabaseLock;
#define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
#define SIZE_OF_FX_REGISTERS 32
/* INTERNAL KERNEL FUNCTIONS ************************************************/
/* threadsch.c ********************************************************************/
@ -677,14 +680,6 @@ KeBugCheckWithTf(
PKTRAP_FRAME Tf
);
VOID
STDCALL
KiDumpTrapFrame(
PKTRAP_FRAME Tf,
ULONG ExceptionNr,
ULONG cr2
);
VOID
STDCALL
KeFlushCurrentTb(VOID);
@ -757,6 +752,12 @@ KeI386VdmInitialize(
VOID
);
VOID
NTAPI
KiFlushNPXState(
IN FLOATING_SAVE_AREA *SaveArea
);
#include "ke_x.h"
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */

View file

@ -74,6 +74,7 @@ KdpGetWrapperDebugMode(PCHAR Currentp2,
#ifdef KDBG
/* Get the KDBG Settings and enable it */
KdDebuggerEnabled = TRUE;
KdDebuggerNotPresent = FALSE;
KdpDebugMode.Gdb = TRUE;
KdbpGetCommandLineSettings((PCHAR)LoaderBlock->CommandLine);
#endif
@ -183,6 +184,7 @@ KdInitSystem(ULONG BootPhase,
p2 += 10;
p2 = KdpGetDebugMode(p2);
p2 = KdpGetWrapperDebugMode(p2, LoaderBlock);
KdDebuggerEnabled = TRUE;
}
/* Check for early breakpoint */
else if (!_strnicmp(p2, "BREAK", 5))

View file

@ -105,8 +105,8 @@ KdpEnterDebuggerException(PEXCEPTION_RECORD ExceptionRecord,
BOOLEAN FirstChance,
BOOLEAN Gdb)
{
/* Get out of here if the Debugger isn't enabled */
if (!KdDebuggerEnabled) return kdHandleException;
/* Get out of here if the Debugger isn't connected */
if (KdDebuggerNotPresent) return kdHandleException;
/* FIXME:
* Right now, the GDB wrapper seems to handle exceptions differntly

File diff suppressed because it is too large Load diff

View file

@ -1,214 +1,40 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Kernel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: ntoskrnl/ke/i386/exp.c
* PURPOSE: Exception Support Code
* PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
* PURPOSE: Exception Dispatching and Context<->Trap Frame Conversion
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
* Gregor Anich
* David Welch (welch@cwcom.net)
* Skywing (skywing@valhallalegends.com)
*/
/* INCLUDES *****************************************************************/
/* INCLUDES ******************************************************************/
#include <ntoskrnl.h>
#define NDEBUG
#include <internal/debug.h>
#include <debug.h>
#if defined (ALLOC_PRAGMA)
#pragma alloc_text(INIT, KeInitExceptions)
#endif
#define SIZE_OF_FX_REGISTERS 32
/* FUNCTIONS *****************************************************************/
VOID
INIT_FUNCTION
NTAPI
Ki386AdjustEsp0(
IN PKTRAP_FRAME TrapFrame
);
VOID
NTAPI
KiFlushNPXState(
IN FLOATING_SAVE_AREA *SaveArea
);
extern KIDTENTRY KiIdt[];
/* GLOBALS *****************************************************************/
#define FLAG_IF (1<<9)
#define _STR(x) #x
#define STR(x) _STR(x)
#ifndef ARRAY_SIZE
# define ARRAY_SIZE(x) (sizeof (x) / sizeof (x[0]))
#endif
extern ULONG init_stack;
extern ULONG init_stack_top;
extern BOOLEAN Ke386NoExecute;
static char *ExceptionTypeStrings[] =
{
"Divide Error",
"Debug Trap",
"NMI",
"Breakpoint",
"Overflow",
"BOUND range exceeded",
"Invalid Opcode",
"No Math Coprocessor",
"Double Fault",
"Unknown(9)",
"Invalid TSS",
"Segment Not Present",
"Stack Segment Fault",
"General Protection",
"Page Fault",
"Reserved(15)",
"Math Fault",
"Alignment Check",
"Machine Check",
"SIMD Fault"
};
NTSTATUS ExceptionToNtStatus[] =
{
STATUS_INTEGER_DIVIDE_BY_ZERO,
STATUS_SINGLE_STEP,
STATUS_ACCESS_VIOLATION,
STATUS_BREAKPOINT,
STATUS_INTEGER_OVERFLOW,
STATUS_ARRAY_BOUNDS_EXCEEDED,
STATUS_ILLEGAL_INSTRUCTION,
STATUS_FLOAT_INVALID_OPERATION,
STATUS_ACCESS_VIOLATION,
STATUS_ACCESS_VIOLATION,
STATUS_ACCESS_VIOLATION,
STATUS_ACCESS_VIOLATION,
STATUS_STACK_OVERFLOW,
STATUS_ACCESS_VIOLATION,
STATUS_ACCESS_VIOLATION,
STATUS_ACCESS_VIOLATION, /* RESERVED */
STATUS_FLOAT_INVALID_OPERATION, /* Should not be used, the FPU can give more specific info */
STATUS_DATATYPE_MISALIGNMENT,
STATUS_ACCESS_VIOLATION,
STATUS_FLOAT_MULTIPLE_TRAPS,
};
/* FUNCTIONS ****************************************************************/
BOOLEAN STDCALL
KiRosPrintAddress(PVOID address)
KeInitExceptions(VOID)
{
PLIST_ENTRY current_entry;
PLDR_DATA_TABLE_ENTRY current;
extern LIST_ENTRY ModuleListHead;
ULONG_PTR RelativeAddress;
ULONG i = 0;
ULONG i;
USHORT FlippedSelector;
extern KIDTENTRY KiIdt[];
do
{
current_entry = ModuleListHead.Flink;
/* Loop the IDT */
for (i = 0; i <= MAXIMUM_IDTVECTOR; i ++)
{
/* Save the current Selector */
FlippedSelector = KiIdt[i].Selector;
while (current_entry != &ModuleListHead)
{
current =
CONTAINING_RECORD(current_entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
if (address >= (PVOID)current->DllBase &&
address < (PVOID)((ULONG_PTR)current->DllBase + current->SizeOfImage))
{
RelativeAddress = (ULONG_PTR) address - (ULONG_PTR) current->DllBase;
DbgPrint("<%wZ: %x>", &current->FullDllName, RelativeAddress);
return(TRUE);
}
current_entry = current_entry->Flink;
}
address = (PVOID)((ULONG_PTR)address & ~(ULONG_PTR)MmSystemRangeStart);
} while(++i <= 1);
return(FALSE);
}
VOID
NTAPI
KiDumpTrapFrame(PKTRAP_FRAME Tf, ULONG Parameter1, ULONG Parameter2)
{
ULONG cr3_;
ULONG StackLimit;
ULONG Esp0;
ULONG ExceptionNr = (ULONG)Tf->DbgArgMark;
ULONG cr2 = (ULONG)Tf->DbgArgPointer;
Esp0 = (ULONG)Tf;
/*
* Print out the CPU registers
*/
if (ExceptionNr < ARRAY_SIZE(ExceptionTypeStrings))
{
DbgPrint("%s Exception: %d(%x)\n", ExceptionTypeStrings[ExceptionNr],
ExceptionNr, Tf->ErrCode&0xffff);
}
else
{
DbgPrint("Exception: %d(%x)\n", ExceptionNr, Tf->ErrCode&0xffff);
}
DbgPrint("Processor: %d CS:EIP %x:%x ", KeGetCurrentProcessorNumber(),
Tf->SegCs&0xffff, Tf->Eip);
KeRosPrintAddress((PVOID)Tf->Eip);
DbgPrint("\n");
Ke386GetPageTableDirectory(cr3_);
DbgPrint("cr2 %x cr3 %x ", cr2, cr3_);
DbgPrint("Proc: %x ",PsGetCurrentProcess());
if (PsGetCurrentProcess() != NULL)
{
DbgPrint("Pid: %x <", PsGetCurrentProcess()->UniqueProcessId);
DbgPrint("%.16s> ", PsGetCurrentProcess()->ImageFileName);
}
if (PsGetCurrentThread() != NULL)
{
DbgPrint("Thrd: %x Tid: %x",
PsGetCurrentThread(),
PsGetCurrentThread()->Cid.UniqueThread);
}
DbgPrint("\n");
DbgPrint("DS %x ES %x FS %x GS %x\n", Tf->SegDs&0xffff, Tf->SegEs&0xffff,
Tf->SegFs&0xffff, Tf->SegGs&0xfff);
DbgPrint("EAX: %.8x EBX: %.8x ECX: %.8x\n", Tf->Eax, Tf->Ebx, Tf->Ecx);
DbgPrint("EDX: %.8x EBP: %.8x ESI: %.8x ESP: %.8x\n", Tf->Edx,
Tf->Ebp, Tf->Esi, Esp0);
DbgPrint("EDI: %.8x EFLAGS: %.8x ", Tf->Edi, Tf->EFlags);
if ((Tf->SegCs&0xffff) == KGDT_R0_CODE)
{
DbgPrint("kESP %.8x ", Esp0);
if (PsGetCurrentThread() != NULL)
{
DbgPrint("kernel stack base %x\n",
PsGetCurrentThread()->Tcb.StackLimit);
}
}
if (PsGetCurrentThread() != NULL)
{
StackLimit = (ULONG)PsGetCurrentThread()->Tcb.StackBase;
}
else
{
StackLimit = (ULONG)init_stack_top;
}
/*
* Dump the stack frames
*/
KeDumpStackFrames((PULONG)Tf->Ebp);
/* Flip Selector and Extended Offset */
KiIdt[i].Selector = KiIdt[i].ExtendedOffset;
KiIdt[i].ExtendedOffset = FlippedSelector;
}
}
ULONG
@ -750,177 +576,6 @@ KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame,
if (OldIrql < APC_LEVEL) KeLowerIrql(OldIrql);
}
VOID
NTAPI
KeDumpStackFrames(PULONG Frame)
{
PULONG StackBase, StackEnd;
MEMORY_BASIC_INFORMATION mbi;
ULONG ResultLength = sizeof(mbi);
NTSTATUS Status;
DbgPrint("Frames:\n");
_SEH_TRY
{
Status = MiQueryVirtualMemory (
(HANDLE)-1,
Frame,
MemoryBasicInformation,
&mbi,
sizeof(mbi),
&ResultLength );
if ( !NT_SUCCESS(Status) )
{
DPRINT1("Can't dump stack frames: MiQueryVirtualMemory() failed: %x\n", Status );
return;
}
StackBase = Frame;
StackEnd = (PULONG)((ULONG_PTR)mbi.BaseAddress + mbi.RegionSize);
while ( Frame >= StackBase && Frame < StackEnd )
{
ULONG Addr = Frame[1];
if (!KeRosPrintAddress((PVOID)Addr))
DbgPrint("<%X>", Addr);
if ( Addr == 0 || Addr == 0xDEADBEEF )
break;
StackBase = Frame;
Frame = (PULONG)Frame[0];
DbgPrint("\n");
}
}
_SEH_HANDLE
{
}
_SEH_END;
DbgPrint("\n");
}
VOID STDCALL
KeRosDumpStackFrames ( PULONG Frame, ULONG FrameCount )
{
ULONG i=0;
PULONG StackBase, StackEnd;
MEMORY_BASIC_INFORMATION mbi;
ULONG ResultLength = sizeof(mbi);
NTSTATUS Status;
DbgPrint("Frames: ");
_SEH_TRY
{
if ( !Frame )
{
#if defined __GNUC__
__asm__("mov %%ebp, %0" : "=r" (Frame) : );
#elif defined(_MSC_VER)
__asm mov [Frame], ebp
#endif
//Frame = (PULONG)Frame[0]; // step out of KeRosDumpStackFrames
}
Status = MiQueryVirtualMemory (
(HANDLE)-1,
Frame,
MemoryBasicInformation,
&mbi,
sizeof(mbi),
&ResultLength );
if ( !NT_SUCCESS(Status) )
{
DPRINT1("Can't dump stack frames: MiQueryVirtualMemory() failed: %x\n", Status );
return;
}
StackBase = Frame;
StackEnd = (PULONG)((ULONG_PTR)mbi.BaseAddress + mbi.RegionSize);
while ( Frame >= StackBase && Frame < StackEnd && i++ < FrameCount )
{
ULONG Addr = Frame[1];
if (!KeRosPrintAddress((PVOID)Addr))
DbgPrint("<%X>", Addr);
if ( Addr == 0 || Addr == 0xDEADBEEF )
break;
StackBase = Frame;
Frame = (PULONG)Frame[0];
DbgPrint(" ");
}
}
_SEH_HANDLE
{
}
_SEH_END;
DbgPrint("\n");
}
ULONG STDCALL
KeRosGetStackFrames ( PULONG Frames, ULONG FrameCount )
{
ULONG Count = 0;
PULONG StackBase, StackEnd, Frame;
MEMORY_BASIC_INFORMATION mbi;
ULONG ResultLength = sizeof(mbi);
NTSTATUS Status;
_SEH_TRY
{
#if defined __GNUC__
__asm__("mov %%ebp, %0" : "=r" (Frame) : );
#elif defined(_MSC_VER)
__asm mov [Frame], ebp
#endif
Status = MiQueryVirtualMemory (
(HANDLE)-1,
Frame,
MemoryBasicInformation,
&mbi,
sizeof(mbi),
&ResultLength );
if ( !NT_SUCCESS(Status) )
{
DPRINT1("Can't get stack frames: MiQueryVirtualMemory() failed: %x\n", Status );
return 0;
}
StackBase = Frame;
StackEnd = (PULONG)((ULONG_PTR)mbi.BaseAddress + mbi.RegionSize);
while ( Count < FrameCount && Frame >= StackBase && Frame < StackEnd )
{
Frames[Count++] = Frame[1];
StackBase = Frame;
Frame = (PULONG)Frame[0];
}
}
_SEH_HANDLE
{
}
_SEH_END;
return Count;
}
VOID
INIT_FUNCTION
NTAPI
KeInitExceptions(VOID)
{
ULONG i;
USHORT FlippedSelector;
/* Loop the IDT */
for (i = 0; i <= MAXIMUM_IDTVECTOR; i ++)
{
/* Save the current Selector */
FlippedSelector = KiIdt[i].Selector;
/* Flip Selector and Extended Offset */
KiIdt[i].Selector = KiIdt[i].ExtendedOffset;
KiIdt[i].ExtendedOffset = FlippedSelector;
}
}
VOID
NTAPI
KiDispatchException(PEXCEPTION_RECORD ExceptionRecord,
@ -1091,10 +746,10 @@ NTSTATUS
NTAPI
KeRaiseUserException(IN NTSTATUS ExceptionCode)
{
ULONG OldEip;
PKTHREAD Thread = KeGetCurrentThread();
ULONG OldEip;
PKTHREAD Thread = KeGetCurrentThread();
/* Make sure we can access the TEB */
/* Make sure we can access the TEB */
_SEH_TRY
{
Thread->Teb->ExceptionCode = ExceptionCode;

View file

@ -86,7 +86,8 @@ Ke386CallBios(IN ULONG Int,
KeSetSystemAffinityThread(1);
/* Make sure there's space for two IOPMs, then copy & clear the current */
//ASSERT(((PKGDTENTRY)&KeGetPcr()->GDT[KGDT_TSS / 8])->LimitLow >= (0x2000 + IOPM_OFFSET - 1));
//ASSERT(((PKGDTENTRY)&KeGetPcr()->GDT[KGDT_TSS / 8])->LimitLow >=
// (0x2000 + IOPM_OFFSET - 1));
RtlMoveMemory(Ki386IopmSaveArea, &Tss->IoMaps[0].IoMap, PAGE_SIZE * 2);
RtlZeroMemory(&Tss->IoMaps[0].IoMap, PAGE_SIZE * 2);

View file

@ -21,6 +21,58 @@ LanguageNames=(English=0x409:MSG00409)
;
; message definitions
;
MessageId=0x7F
Severity=Warning
Facility=System
SymbolicName=BUGCHECK_MESSAGE_INTRO
Language=English
A problem has been detected and ReactOS has been shut down to prevent damage
to your computer.
.
MessageId=0x80
Severity=Warning
Facility=System
SymbolicName=BUGCODE_ID_DRIVER
Language=English
The problem seems to be caused by the following file:
.
MessageId=0x81
Severity=Warning
Facility=System
SymbolicName=PSS_MESSAGE_INTRO
Language=English
If this is the first time you've seen this Stop error screen,
restart your computer. If this screen appears again, follow
these steps:
.
MessageId=0x82
Severity=Warning
Facility=System
SymbolicName=BUGCODE_PSS_MESSAGE
Language=English
Check to make sure any new hardware or software is properly installed.
If this is a new installation, ask your hardware or software manufacturer
for any ReactOS updates you might need.
If problems continue, disable or remove any newly installed hardware
or software. Disable BIOS memory options such as caching or shadowing.
If you need to use Safe Mode to remove or disable components, restart
your computer, press F8 to select Advanced Startup Options, and then
select Safe Mode.
.
MessageId=0x83
Severity=Warning
Facility=System
SymbolicName=BUGCHECK_TECH_INFO
Language=English
Technical information:
.
MessageId=0x0
Severity=Success
@ -267,7 +319,16 @@ Severity=Success
Facility=System
SymbolicName=KMODE_EXCEPTION_NOT_HANDLED
Language=English
KMODE_EXCEPTION_NOT_HANDLED
Check to be sure you have adequate disk space. If a driver is
identified in the Stop message, disable the driver or check
with the manufacturer for driver updates. Try changing video
adapters.
Check with your hardware vendor for any BIOS updates. Disable
BIOS memory options such as caching or shadowing. If you need
to use Safe Mode to remove or disable components, restart your
computer, press F8 to select Advanced Startup Options, and then
select Safe Mode.
.
MessageId=0x1F
@ -307,7 +368,10 @@ Severity=Success
Facility=System
SymbolicName=FAT_FILE_SYSTEM
Language=English
FAT_FILE_SYSTEM
Disable or uninstall any anti-virus, disk defragmentation
or backup utilities. Check your hard drive configuration,
and check for any updated drivers. Run CHKDSK /F to check
for hard drive corruption, and then restart your computer.
.
MessageId=0x24
@ -395,7 +459,15 @@ Severity=Success
Facility=System
SymbolicName=DATA_BUS_ERROR
Language=English
DATA_BUS_ERROR
Run system diagnostics supplied by your hardware manufacturer.
In particular, run a memory check, and check for faulty or
mismatched memory. Try changing video adapters.
Check with your hardware vendor for any BIOS updates. Disable
BIOS memory options such as caching or shadowing. If you need
to use Safe Mode to remove or disable components, restart your
computer, press F8 to select Advanced Startup Options, and then
select Safe Mode.
.
MessageId=0x2F
@ -502,7 +574,12 @@ Severity=Success
Facility=System
SymbolicName=NO_MORE_SYSTEM_PTES
Language=English
NO_MORE_SYSTEM_PTES
Remove any recently installed software including backup
utilities or disk-intensive applications.
If you need to use Safe Mode to remove or disable components,
restart your computer, press F8 to select Advanced Startup
Options, and then select Safe Mode.
.
MessageId=0x40
@ -581,7 +658,13 @@ Language=English
STREAMS_INTERNAL_ERROR
.
MessageId=0x4C
Severity=Success
Facility=System
SymbolicName=FATAL_UNHANDLED_HARD_ERROR
Language=English
FATAL_UNHANDLED_HARD_ERROR
.
MessageId=0x4D
Severity=Success
@ -942,7 +1025,11 @@ Severity=Success
Facility=System
SymbolicName=INACCESSIBLE_BOOT_DEVICE
Language=English
INACCESSIBLE_BOOT_DEVICE
Check for viruses on your computer. Remove any newly installed
hard drives or hard drive controllers. Check your hard drive
to make sure it is properly configured and terminated.
Run CHKDSK /F to check for hard drive corruption, and then
restart your computer.
.
@ -960,7 +1047,14 @@ Severity=Success
Facility=System
SymbolicName=UNEXPECTED_KERNEL_MODE_TRAP
Language=English
UNEXPECTED_KERNEL_MODE_TRAP
Run a system diagnostic utility supplied by your hardware manufacturer.
In particular, run a memory check, and check for faulty or mismatched
memory. Try changing video adapters.
Disable or remove any newly installed hardware and drivers. Disable or
remove any newly installed software. If you need to use Safe Mode to
remove or disable components, restart your computer, press F8 to select
Advanced Startup Options, and then select Safe Mode.
.
MessageId=0x7F
@ -974,6 +1068,14 @@ Hardware malfunction
MessageId=0x80
Severity=Success
Facility=System
SymbolicName=KERNEL_MODE_EXCEPTION_NOT_HANDLED
Language=English
KERNEL_MODE_EXCEPTION_NOT_HANDLED
.
MessageId=0x8E
Severity=Success
Facility=System
SymbolicName=SPIN_LOCK_INIT_FAILURE
Language=English
SPIN_LOCK_INIT_FAILURE
@ -995,6 +1097,22 @@ Language=English
INVALID_WORK_QUEUE_ITEM
.
MessageId=0xA5
Severity=Success
Facility=System
SymbolicName=ACPI_BIOS_ERROR
Language=English
The BIOS in this system is not fully ACPI compliant. Please contact your
system vendor for an updated BIOS.
.
MessageId=0xBE
Severity=Success
Facility=System
SymbolicName=ATTEMPTED_WRITE_TO_READONLY_MEMORY
Language=English
ATTEMPTED_WRITE_TO_READONLY_MEMORY
MessageId=0xC2
Severity=Success
Facility=System
@ -1003,6 +1121,110 @@ Language=English
BAD_POOL_CALLER
.
MessageId=0xC3
Severity=Success
Facility=System
SymbolicName=BUGCODE_PSS_MESSAGE_SIGNATURE
Language=English
A system file that is owned by ReactOS was replaced by an application
running on your system. The operating system detected this and tried to
verify the validity of the file's signature. The operating system found that
the file signature is not valid and put the original, correct file back
so that your operating system will continue to function properly.
.
MessageId=0xC5
Severity=Success
Facility=System
SymbolicName=DRIVER_CORRUPTED_EXPOOL
Language=English
A device driver has pool.
Check to make sure any new hardware or software is properly installed.
If this is a new installation, ask your hardware or software manufacturer
for any ReactOS updates you might need.
Run the driver verifier against any new (or suspect) drivers.
If that doesn't reveal the corrupting driver, try enabling special pool.
Both of these features are intended to catch the corruption at an earlier
point where the offending driver can be identified.
If you need to use Safe Mode to remove or disable components,
restart your computer, press F8 to select Advanced Startup Options,
and then select Safe Mode.
.
MessageId=0xCB
Severity=Success
Facility=System
SymbolicName=DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS
Language=English
DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS
.
MessageId=0xCE
Severity=Success
Facility=System
SymbolicName=DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
Language=English
DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
.
MessageId=0xD0
Severity=Success
Facility=System
SymbolicName=DRIVER_CORRUPTED_MMPOOL
Language=English
DRIVER_CORRUPTED_MMPOOL
.
MessageId=0xD1
Severity=Success
Facility=System
SymbolicName=DRIVER_IRQL_NOT_LESS_OR_EQUAL
Language=English
DRIVER_IRQL_NOT_LESS_OR_EQUAL
.
MessageId=0xD3
Severity=Success
Facility=System
SymbolicName=DRIVER_PORTION_MUST_BE_NONPAGED
Language=English
DRIVER_PORTION_MUST_BE_NONPAGED
.
MessageId=0xD8
Severity=Success
Facility=System
SymbolicName=DRIVER_USED_EXCESSIVE_PTES
Language=English
DRIVER_USED_EXCESSIVE_PTES
.
MessageId=0xD4
Severity=Success
Facility=System
SymbolicName=SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD
Language=English
SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD
.
MessageId=0xE0
Severity=Success
Facility=System
SymbolicName=ACPI_BIOS_FATAL_ERROR
Language=English
Your computer (BIOS) has reported that a component in your system is faulty and
has prevented ReactOS from operating. You can determine which component is
faulty by running the diagnostic disk or tool that came with your computer.
If you do not have this tool, you must contact your system vendor and report
this error message to them. They will be able to assist you in correcting this
hardware problem thereby allowing ReactOS to operate.
.
MessageId=0xE1
Severity=Success
Facility=System
@ -1035,6 +1257,14 @@ Language=English
WORKER_INVALID
.
MessageId=0xE5
Severity=Success
Facility=System
SymbolicName=POWER_FAILURE_SIMULATE
Language=English
POWER_FAILURE_SIMULATE
.
MessageId=0xFA
Severity=Success
Facility=System
@ -1101,6 +1331,19 @@ Language=English
ACTIVE_EX_WORKER_THREAD_TERMINATION
.
MessageId=0xEA
Severity=Success
Facility=System
SymbolicName=THREAD_STUCK_IN_DEVICE_DRIVER
Language=English
The device driver got stuck in an infinite loop. This usually indicates
problem with the device itself or with the device driver programming the
hardware incorrectly.
Please check with your hardware device vendor for any driver updates.
.
MessageId=0xEF
Severity=Success
Facility=System