Hi All
I need help in debugging this crash :
The system is W2K-SP4 the driver is for a USB device. It crashes during
surprise removal.
BugCheck D1, {b4214fea, 2, 0, eb1e1480}
Probably caused by : foobarc.sys ( foobarc!DumpURB+20 )
Followup: MachineOwner
nt!RtlpBreakWithStatusInstruction:
804582f4 cc int 3
0: 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: b4214fea, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000000, value 0 = read operation, 1 = write operation
Arg4: eb1e1480, address which referenced memory
Debugging Details:
READ_ADDRESS: b4214fea Special pool
CURRENT_IRQL: 2
FAULTING_IP:
foobarc!DumpURB+20 [c:\foobar\foobarc\driverentry.c @ 531]
eb1e1480 668b4802 mov cx,word ptr [eax+2]
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0xD1
PROCESS_NAME: Idle
TRAP_FRAME: 80475b28 -- (.trap ffffffff80475b28)
ErrCode = 00000000
eax=b4214fe8 ebx=00000000 ecx=000009f3 edx=b4214fe8 esi=b4218eb8
edi=b4218fd4
eip=eb1e1480 esp=80475b9c ebp=80475c74 iopl=0 nv up ei ng nz na pe
nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010286
foobarc!DumpURB+0x20:
eb1e1480 668b4802 mov cx,word ptr [eax+2]
ds:0023:b4214fea=????
Resetting default scope
LAST_CONTROL_TRANSFER: from 8042bf89 to 804582f4
STACK_TEXT:
80475750 8042bf89 00000003 80475798 b4214fea
nt!RtlpBreakWithStatusInstruction
80475780 8042c57c 00000003 b4214fea eb1e1480 nt!KiBugCheckDebugBreak+0x31
80475b0c 8046b12c 00000000 b4214fea 00000002 nt!KeBugCheckEx+0x390
80475b0c eb1e1480 00000000 b4214fea 00000002 nt!KiTrap0E+0x210
80475c74 eb1e1daf 85a1ee78 b4214fe8 00000001 foobarc!DumpURB+0x20
[c:\foobar\foobarc\driverentry.c @ 531]
80475ca0 8052d7e6 85a1edc0 b4218eb8 000009f3
foobarc!InternalIOCTLCompletion+0x6f [c:\foobar\foobarc\driverentry.c @
1271]
80475cec f71e53ef 85d07028 f71e8f3a 85c0b030
nt!IovSpecialIrpCompleteRequest+0x18c
80475cf4 f71e8f3a 85c0b030 b4218eb8 c00002b6
USBPORT!USBPORT_CompleteIrp+0x29
80475d3c f71e8ac9 85d070e0 85d070ec 00000000
USBPORT!USBPORT_BadRequestFlush+0x1ae
80475d60 80433b90 85d076a8 85d07028 822bcb6c
USBPORT!USBPORT_DM_TimerDpc+0x14b
80475e60 80433a76 80471c70 ffdff848 ffdff000 nt!KiTimerListExpire+0x112
80475e8c 804676b8 80485580 00000000 000021bd nt!KiTimerExpiration+0xb6
80475ea4 80467610 0000000e 00000000 00000000 nt!KiRetireDpcList+0x47
80475ea8 00000000 00000000 00000000 00000000 nt!KiIdleLoop+0x28
STACK_COMMAND: kb
FOLLOWUP_IP:
foobarc!DumpURB+20 [c:\foobar\foobarc\driverentry.c @ 531]
eb1e1480 668b4802 mov cx,word ptr [eax+2]
FAULTING_SOURCE_CODE:
527: KdPrint(("URB == NULL!?\n"));
528: }
529: else
530: {
531: USHORT wFunction = pUrb->UrbHeader.Function;
532: USHORT wLength = pUrb->UrbHeader.Length;
533: USBD_STATUS lUsbdStatus = pUrb->UrbHeader.Status;
534:
535: switch(wFunction)
536: {
SYMBOL_STACK_INDEX: 4
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: foobarc
IMAGE_NAME: foobarc.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 46935c2f
SYMBOL_NAME: foobarc!DumpURB+20
FAILURE_BUCKET_ID: 0xD1_VRF_foobarc!DumpURB+20
BUCKET_ID: 0xD1_VRF_foobarc!DumpURB+20
Followup: MachineOwner
0: kd> .trap ffffffff80475b28
ErrCode = 00000000
eax=b4214fe8 ebx=00000000 ecx=000009f3 edx=b4214fe8 esi=b4218eb8
edi=b4218fd4
eip=eb1e1480 esp=80475b9c ebp=80475c74 iopl=0 nv up ei ng nz na pe
nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010286
foobarc!DumpURB+0x20:
eb1e1480 668b4802 mov cx,word ptr [eax+2]
ds:0023:b4214fea=????