hi
I’m trying to analyze a crash dump crash in the Atheros wireless driver.
The call stack (I pasted in the analyze -v output below, that includes a
stack) shows that a function call hal!KfLowerIrql is calling
hal!pCheckForSoftwareInterrupt, which appears to be calling into the atheros
driver.
Can somebody summarize what CheckForSoftware Interrupt does ?
I was suspicious that a call into the hal could end up into the atheros
driver – I thought that perhaps the debugger couldn’t unwind the stack
because the code isn’t following call conventions when pushing on the stack
— but when I try to unwind the stack myself by dumping and examining
stack memory and then looking for ebp and return addresses (and the using u
return address nearby. Perhaps I need to try again or examine the stack
farther down (in higher address locations).
It would help if I could understand generally what these Hal functions do. I
googled and couldn't find any documentation.
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck D1, {0, 2, 0, 9b950bbc}
***ERROR: Module load completed but symbols could not be loaded for
ar5523.sys
*** ERROR: Symbol file could not be found. Defaulted to export symbols for
mfehidk.sys -
Probably caused by : ar5523.sys ( ar5523+44bbc )
Followup: MachineOwner
---------
kd> !analyze -v
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at
an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: 00000000, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000000, value 0 = read operation, 1 = write operation
Arg4: 9b950bbc, address which referenced memory
Debugging Details:
------------------
READ_ADDRESS: 00000000
CURRENT_IRQL: 2
FAULTING_IP:
ar5523+44bbc
9b950bbc 8b0f mov ecx,dword ptr [edi] <----- edi is 0 (this
caused the crash)
DEFAULT_BUCKET_ID: VISTA_RC
BUGCHECK_STR: 0xD1
PROCESS_NAME: System
TRAP_FRAME: 9be3d484 -- (.trap ffffffff9be3d484)
ErrCode = 00000000
eax=9ca45000 ebx=00000018 ecx=00000000 edx=9ca45000 esi=9c94c6a0
edi=00000000
eip=9b950bbc esp=9be3d4f8 ebp=9ca45000 iopl=0 nv up ei pl zr na pe
nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010246
ar5523+0x44bbc:
9b950bbc 8b0f mov ecx,dword ptr [edi]
ds:0023:00000000=????????
Resetting default scope
LAST_CONTROL_TRANSFER: from 9b950bbc to 81c494d4
STACK_TEXT:
9be3d484 9b950bbc badb0d00 9ca45000 00000001 nt!KiTrap0E+0x2ac
WARNING: Stack unwind information not available. Following frames may be
wrong.
9be3d4fc 9b942340 9ca45000 ffffffff ffffffff ar5523+0x44bbc
9be3d518 9b94336a 9c94c688 9ca4fa34 9ca45000 ar5523+0x36340
9be3d540 81f9b518 c02105cc be8f0000 9be3d570 ar5523+0x3736a
9be3d62c 81c6a820 9be3d790 9be3d788 00000001 hal!KfLowerIrql+0x64
9be3d660 81c6834e 9be3d700 83b6bce3 83b6bb08 nt!KiExitDispatcher+0x1a2
9be3d680 a21507ee 9be3d700 00000000 00000000 nt!KeSetEvent+0xcc
9be3d694 81c34b79 83ba55a0 83b6bb08 9be3d788
mfehidk!DEVICEDISPATCH::DispatchPassThrough+0xce0
9be3d6c8 83f6c3ef 9be3d6e8 83f6c43c 83b6bb08 nt!IopfCompleteRequest+0x12d
9be3d6d0 83f6c43c 83b6bb08 c0000034 00000000 fltmgr!FltpCompleteRequest+0x2d
9be3d6e8 83f6cb39 9c981d78 83b6bb08 00000000
fltmgr!FltpSynchronizeIoCleanup+0x44
9be3d710 83f7ea91 9be3d730 c0000034 00000000
fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x307
9be3d75c 81c67cc9 831968d0 83196460 83b6bd28 fltmgr!FltpCreate+0x2a1
9be3d79c 81f9b518 000001ff 81d28100 9be3d810 nt!IofCallDriver+0x63
83ba56a0 62766564 00000001 83ba55a0 83ba5658 hal!KfLowerIrql+0x64
83ba56a4 00000000 83ba55a0 83ba5658 a21577d0 0x62766564
STACK_COMMAND: kb
FOLLOWUP_IP:
ar5523+44bbc
9b950bbc 8b0f mov ecx,dword ptr [edi]
SYMBOL_STACK_INDEX: 1
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: ar5523
IMAGE_NAME: ar5523.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 42e85aea
SYMBOL_NAME: ar5523+44bbc
FAILURE_BUCKET_ID: 0xD1_ar5523+44bbc
BUCKET_ID: 0xD1_ar5523+44bbc
Followup: MachineOwner
---------
thanks