Thanks for the dumps. I do agree now that I've had a look at them that bad RAM the most likely cause, I'll explain in detail why that is in a second. I wanted first to answer your question about 'the IRQ issue' because you seem interested?
I think you're referring to the 0xA bugscheck - the IRQL_NOT_LESS_OR_EQUAL BSOD? What this is telling you is that a page fault occurred whilst running at an elevated IRQL. This is not allowed. The IRQL (interrupt request level) is an interrupt prioritisation mechanism used at the processor (hardware) level. It defines the range of interrupts that the processor can accept. The lowest level (all interrupts accepted) is the NORMAL level (IRQL 0) and any IRQL above that is known as an 'elevated IRQL'. The most commonly used elevated IRQL is DISPATCH_LEVEL (IRQL 2). One of the things a processor cannot do at IRQL 2 is an I/O to the pagiong file, so a page fault cannot be allowed. Drivers that run at elevated IRQLs allocate storage in non-paged pools to avoid this possibility.
You can see in this 0xA dump that the IRQL level is 2 (argument 2) and in the stack trace (which you read from the bottom up) you can see a page fauilt. That's what caused thjis BSOD....
Code:
STACK_TEXT:
fffff183`09aca468 fffff800`35a11729 : 00000000`0000000a 00000000`00000d4c 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
fffff183`09aca470 fffff800`35a0d2e3 : ffff9280`00000000 00000000`00000008 00000000`0000ffff 00000000`00000000 : nt!KiBugCheckDispatch+0x69
fffff183`09aca5b0 fffff800`358f6346 : 00000000`00000000 ffffb50d`d2ea1508 00000000`00000000 fffff183`09aca801 : nt!KiPageFault+0x463
fffff183`09aca740 fffff800`35a2fe4b : fffff183`0000002f fffff800`00000000 00000000`00000001 ffffb50d`d2ea11c0 : nt!KeAbPreWait+0x6
fffff183`09aca770 fffff800`35948262 : ffffb50d`d2ea1508 00000000`00000010 00000000`00000001 fffff800`35cfd700 : nt!KeWaitForSingleObject+0x1eff7b
fffff183`09aca860 fffff800`35cfd738 : ffffffff`ffffffff 00000000`00000001 ffffb50d`d23808f0 00000000`00000000 : nt!AlpcpWaitForSingleObject+0x3e
fffff183`09aca8a0 fffff800`35c18955 : ffffffff`00000001 00000000`00000000 ffffb50d`d23808f0 ffffb50d`d23808f0 : nt!AlpcpCompleteDeferSignalRequestAndWait+0x3c
fffff183`09aca8e0 fffff800`35c1b6af : 00000183`165eff1c 00000000`00000001 fffff183`09aca990 fffff183`09aca988 : nt!AlpcpReceiveMessagePort+0x265
fffff183`09aca950 fffff800`35c1b4fb : fffff183`09acaa30 00000183`165eff1c fffff183`09aca990 00000000`00000000 : nt!AlpcpReceiveLegacyMessage+0x11f
fffff183`09aca9f0 fffff800`35a10ef8 : ffffb50d`d2ea1080 00000018`131ff828 fffff183`09acaaa8 00000000`00000000 : nt!NtReplyWaitReceivePortEx+0xcb
fffff183`09acaa90 00007ff8`9942d544 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x28
00000018`131ff808 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ff8`9942d544
A page fault occurs because the page containing the virtual address referenced was not in RAM. That could be because it was never allocated, because it's paged out, because the address referenced is wrong (a pad pointer), or because the RAM is bad.
The first three of those reasons are quite common third-party driver screw-ups, only the fourth is a hardware problem. That's why the cause of this particular BSOD is almost always a third-party driver. Typically we'd see the driver on the call stack leading up to the bugcheck - but here we don't. There are no third-party drivers referenced at all, all the function calls are kernel calls (nt!....). That means that bad RAM is more likely given what we see in this dump.
The other two dumps are 0x1A - MEMORY_MANAGEMENT and a 0xBE - ATTEMPTED_WRITE_TO_READONLY_MEMORY.
The 0x1A has an argument 1 value of 8886 which indicates that
two pages on the standby list that were supposed to have identical page priority values don't have identical page priority values. The differing values are captured in argument 4. The mosty likely cause of that is a bad RAM page.
The 0xBE dump also has no third-party drivers on the call stack leading up to the bugcheck...
Code:
0: kd> knL
# Child-SP RetAddr Call Site
00 fffff802`48c74448 fffff802`43a7a1e8 nt!KeBugCheckEx
01 fffff802`48c74450 fffff802`4382474f nt!MiRaisedIrqlFault+0x141740
02 fffff802`48c744a0 fffff802`43a0d1d8 nt!MmAccessFault+0x4ef
03 fffff802`48c74640 fffff802`4383ceb6 nt!KiPageFault+0x358
04 fffff802`48c747d0 fffff802`438c2086 nt!KiTryUnwaitThread+0x186
05 fffff802`48c74830 fffff802`438c1c2c nt!KiTimerWaitTest+0x1e6
06 fffff802`48c748e0 fffff802`438c0d3d nt!KiProcessExpiredTimerList+0xdc
07 fffff802`48c749d0 fffff802`43a0202e nt!KiRetireDpcList+0x5dd
08 fffff802`48c74c60 00000000`00000000 nt!KiIdleLoop+0x9e
You can also see (in the way I've displayed the stack here) that the failing function was frame 4 - because frame 3 (the next call) is a page fault. We can dispay the details of frame 4 to see what happened...
Code:
0: kd> .frame /r 4
04 fffff802`48c747d0 fffff802`438c2086 nt!KiTryUnwaitThread+0x186
rax=0000000000000001 rbx=ffffd78a945d6080 rcx=0000000000000000
rdx=0000000000000000 rsi=ffffd78a945d6250 rdi=fffff80243841495
rip=fffff8024383ceb6 rsp=fffff80248c747d0 rbp=fffff802408c5180
r8=0000000000000102 r9=0000000000000000 r10=0000000000000000
r11=fffff80248c748c0 r12=0000000000000102 r13=0000000000000000
r14=fffff802408c5180 r15=0000000000000000
iopl=0 nv up ei pl nz na pe nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00000202
nt!KiTryUnwaitThread+0x186:
fffff802`4383ceb6 f0480fbaaf107c000000 lock bts qword ptr [rdi+7C10h],0 ds:002b:fffff802`438490a5=c7fffffbe8850f00
You can see at the bottom there that the BSOD happened whilst attempting to execute a LOCK instruction using the RDI register and an offset as a pointer to a lock in memory, but the resulting pointer address (fffff802`438490a5) conatins an invalid memory location (c7fffffbe8850f00). It's invalid because it's non-canonical - it's not is the valid range of allowed virtual addresses. You can check this by displaying the page table entry for it...
Code:
0: kd> !pte c7fffffbe8850f00
VA c7fffffbe8850f00
PXE at FFFF9BCDE6F37FF8 PPE at FFFF9BCDE6FFFF78 PDE at FFFF9BCDFFFEFA20 PTE at FFFF9BFFFDF44280
Unable to get PXE FFFF9BCDE6F37FF8
WARNING: noncanonical VA, accesses will fault !
It's prety clear that the address that was intended was 0xFFFFFFFBE8850F00 but that several bits in the first byte have not been set properly...
Rich (BB code):
0: kd> .formats c7fffffbe8850f00
Evaluate expression:
Binary: 11000111 11111111 11111111 11111011 11101000 10000101 00001111 00000000
0: kd> .formats fffffffb`e8850f00
Evaluate expression:
Binary: 11111111 11111111 11111111 11111011 11101000 10000101 00001111 00000000
This can only have been cvaused by a bad RAM page.
I've gone into a lot of detail because you seem to be interested in the detaail? The conclusion is that you have bad RAM and I'd suggest you test in with Memtest86...
- Download Memtest86 (free), use the imageUSB.exe tool extracted from the download to make a bootable USB drive containing Memtest86 (1GB is plenty big enough). Do this on a different PC if you can, because you can't fully trust yours at the moment.
- Then boot that USB drive on your PC, Memtest86 will start running as soon as it boots.
- If no errors have been found after the four iterations of the 13 different tests that the free version does, then restart Memtest86 and do another four iterations. Even a single bit error is a failure.
Let us know how that goes.