Hi,
I’m writting a driver which has a thread to dequeue a list . When
running always raise the bug check
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: 804e3e6c, The address that the exception occurred at
Arg3: f3836cbc, Exception Record Address
Arg4: f38369b8, Context Record Address
Debugging Details:
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - “0x%08lx”
FAULTING_IP:
nt!ExfInterlockedRemoveHeadList+c
804e3e6c 894a04 mov dword ptr [edx+4],ecx
EXCEPTION_RECORD: f3836cbc – (.exr 0xfffffffff3836cbc)
ExceptionAddress: 804e3e6c (nt!ExfInterlockedRemoveHeadList+0x0000000c)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000001
Parameter[1]: 00000004
Attempt to write to address 00000004
CONTEXT: f38369b8 – (.cxr 0xfffffffff38369b8)
eax=8601ef80 ebx=00000200 ecx=86148d44 edx=00000000 esi=00000000 edi=00000000
eip=804e3e6c esp=f3836d84 ebp=f3836dac iopl=0 nv up di ng nz ac pe cy
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010097
nt!ExfInterlockedRemoveHeadList+0xc:
804e3e6c 894a04 mov dword ptr [edx+4],ecx ds:0023:00000004=???
Resetting default scope
PROCESS_NAME: System
ERROR_CODE: (NTSTATUS) 0xc0000005 - “0x%08lx”
EXCEPTION_PARAMETER1: 00000001
EXCEPTION_PARAMETER2: 00000004
WRITE_ADDRESS: 00000004
FOLLOWUP_IP:
uSCSIPort!PiDataInWorker+57 [c:\uscsi\uscsiport\data.c @ 410]
f7b3bcc3 8bf0 mov esi,eax
BUGCHECK_STR: 0x7E
DEFAULT_BUCKET_ID: NULL_CLASS_PTR_DEREFERENCE
LAST_CONTROL_TRANSFER: from f7b3bcc3 to 804e3e6c
STACK_TEXT:
f3836d84 f7b3bcc3 00000000 85fe78b8 00000000 nt!ExfInterlockedRemoveHeadList+0xc
f3836dac 8057c0df 00000000 00000000 00000000
uSCSIPort!PiDataInWorker+0x57 [c:\uscsi\uscsiport\data.c @ 410]
f3836ddc 804f98fa f7b3bc6c e1dc03e0 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
SYMBOL_STACK_INDEX: 1
SYMBOL_NAME: uSCSIPort!PiDataInWorker+57
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: uSCSIPort
IMAGE_NAME: uSCSIPort.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4d15b95e
STACK_COMMAND: .cxr 0xfffffffff38369b8 ; kb
FAILURE_BUCKET_ID: 0x7E_uSCSIPort!PiDataInWorker+57
BUCKET_ID: 0x7E_uSCSIPort!PiDataInWorker+57
Followup: MachineOwner
It seems the currupted LIST_ENTRY raise this bug check but I can’t
find where in my code the LIST_ENTRY got curruptted.
Could someone help me with this? thanks in advance.