Thanks.
We have a bunch of different bug checks, but I'd again like to go back to this one in a bit more detail:
IRQL_NOT_LESS_OR_EQUAL (a)
This indicates that Microsoft Windows or a kernel-mode driver accessed paged memory at DISPATCH_LEVEL or above.
This bug check is issued if paged memory (or invalid memory) is accessed when the IRQL is too high. The error that generates this bug check usually occurs after the installation of a faulty device driver, system service, or BIOS.
Code:
BugCheck A, {1c5, ff, 1, 81b24354}
There was an attempt to write to the address -
000001c5.
Code:
3: kd> !pte 000001c5
VA 000001c5
PDE at C0600000 PTE at C0000000
contains 0000000000000000
not valid
It's of course invalid.
Code:
3: kd> kv
ChildEBP RetAddr Args to Child
ad6a7b70 81b23923 0000000a 000001c5 000000ff nt!KiBugCheck2
ad6a7b70 81b24354 0000000a 000001c5 000000ff nt!KiTrap0E+0x1cf (FPO: [0,0] TrapFrame @ ad6a7c10)
ad6a7d14 5ca897a6 badb0d00 00000000 00000000 nt!KiChainedDispatch+0x44 (FPO: [Non-Fpo])
ad6a7d18 badb0d00 00000000 00000000 00000000 0x5ca897a6
ad6a7d1c 00000000 00000000 00000000 00000000 0xbadb0d00
Code:
3: kd> .trap ad6a7c10
ErrCode = 00000002
eax=000001c5 ebx=00000071 ecx=a2cd8140 edx=00000000 esi=0011ef76 edi=831fad80
eip=81b24354 esp=ad6a7c84 ebp=ad6a7d14 iopl=0 nv up di pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010006
nt!KiChainedDispatch+0x44:
81b24354 0000 add byte ptr [eax],al ds:0023:000001c5=??
On the instruction we faulted on, we failed adding a pointer which was stored in
eax.
eax was 000001c5, and that's where we failed writing to.
eax should have been a valid address, but it wasn't. It's not as if we dereferenced
eax and for example
ecx was where we were trying to store the pointer, but in fact in our case,
eax (the register itself) was straight up invalid.
This is known as a misaligned instruction pointer, which is generally caused by buffer overflows, or bad memory. I've analyzed your dumps before, and the reason I brought this upon is because in your case at this point, it's probably bad RAM.
Run Memtest for NO LESS than ~8 passes (several hours):
Memtest86+:
Download Memtest86+ here:
Memtest86+ - Advanced Memory Diagnostic Tool
Which should I download?
You can either download the pre-compiled ISO that you would burn to a CD and then boot from the CD, or you can download the auto-installer for the USB key. What this will do is format your USB drive, make it a bootable device, and then install the necessary files. Both do the same job, it's just up to you which you choose, or which you have available (whether it's CD or USB).
Do note that some older generation motherboards do not support USB-based booting, therefore your only option is CD (or Floppy if you really wanted to).
How Memtest works:
Memtest86 writes a series of test patterns to most memory addresses, reads back the data written, and compares it for errors.
The default pass does 9 different tests, varying in access patterns and test data. A tenth test, bit fade, is selectable from the menu. It writes all memory with zeroes, then sleeps for 90 minutes before checking to see if bits have changed (perhaps because of refresh problems). This is repeated with all ones for a total time of 3 hours per pass.
Many chipsets can report RAM speeds and timings via SPD (Serial Presence Detect) or EPP (Enhanced Performance Profiles), and some even support changing the expected memory speed. If the expected memory speed is overclocked, Memtest86 can test that memory performance is error-free with these faster settings.
Some hardware is able to report the "PAT status" (PAT: enabled or PAT: disabled). This is a reference to Intel Performance acceleration technology; there may be BIOS settings which affect this aspect of memory timing.
This information, if available to the program, can be displayed via a menu option.
Any other questions, they can most likely be answered by reading this great guide here:
FAQ : please read before posting
Regards,
Patrick