From: Michael on
I'm getting a PAGE_FAULT_IN_NONPAGED_AREA bug check when trying to read from
an address that should be valid. This happens in a thread that is running at
passive level. I'm reading from device memory with a base virtual address of
0xa8b9b000. So the memory I'm trying to read is well within the virtual
address range mapped in for the device. I can't find anything out of the
norm. This crash does not happen 100% of the time. A lot of times I can
sucessfully read from device memory. How can I debug this? Is there a way
to determine why the OS thinks the address is not valid?



Arguments:
Arg1: a8b9d418, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: a93a563a, If non-zero, the instruction address which referenced the
bad memory
address.
Arg4: 00000000, (reserved)


ErrCode = 00000000
eax=00000000 ebx=00000000 ecx=8864d210 edx=a8b9b000 esi=88542768 edi=00000000
eip=a93a563a esp=af8c1d88 ebp=af8c1dac iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246
mipio!mipio_thread+0xca:
a93a563a 8b8218240000 mov eax,dword ptr [edx+2418h]
ds:0023:a8b9d418=????????
Resetting default scope