Hi, I have a crash in the 1394 isoch callback function where I reuse a work
IRP each time to call down the 1394 stack to detach the buffer (completion
routine loads more data and calls down to reattach etc).
The analyse output is below, but the interesting report is this:
0: kd> !irp 833cd008
Irp is active with 255 stacks 255 is current (= 0x833cd054)
No Mdl: No System Buffer: Thread 00000000: Too many Irp stacks to be
believed (>30)!!
0: kd> !irp 833cd008 1
Irp is active with 255 stacks 255 is current (= 0x833cd054)
No Mdl: No System Buffer: Thread 00000000: Too many Irp stacks to be
believed (>30)!!
0: kd>
I'd like to find out more about the sordid history of this IRP but it
doesn't want to show me any.
Any suggestions? Thanks, Mike
The debugger shows:
NO_MORE_IRP_STACK_LOCATIONS (35)
A higher level driver has attempted to call a lower level driver through
the IoCallDriver() interface, but there are no more stack locations in the
packet, hence, the lower level driver would not be able to access its
parameters, as there are no parameters for it. This is a disasterous
situation, since the higher level driver "thinks" it has filled in the
parameters for the lower level driver (something it MUST do before it calls
it), but since there is no stack location for the latter driver, the former
has written off of the end of the packet. This means that some other memory
has probably been trashed at this point.
Arguments:
Arg1: 833cd008, Address of the IRP
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000
Debugging Details:
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x35
PROCESS_NAME: Idle
LAST_CONTROL_TRANSFER: from 8052015d to 805371aa
STACK_TEXT:
80556388 8052015d 00000035 833cd008 00000000 nt!KeBugCheckEx+0x1b
805563a0 f7bba5f1 83478350 833c4540 0000d868 nt!IopfCallDriver+0x17
805563b4 f780c5f9 83728258 833bab18 804db68a lm1394!IsochTxCallback+0x97
[c:\development\lm1394\driver\lm1394\isochapi.c @ 2970]
805563ec f780d209 8475a0e0 00000000 00000001
ohci1394!OhciHandleIsochInt+0x21d
80556428 804dcd22 8475b624 8475a0e0 00000000 ohci1394!OhciIsochDpc+0x57
80556450 804dcc07 00000000 0000000e 00000000 nt!KiRetireDpcList+0x61
80556454 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x28
STACK_COMMAND: kb
FOLLOWUP_IP:
lm1394!IsochTxCallback+97 [c:\development\lm1394\driver\lm1394\isochapi.c @
2970]
f7bba5f1 ?? ???
FAULTING_SOURCE_CODE:
IoCallDriver(pDeviceExtension->StackDeviceObject,
pCallbackControl->workIrp);
SYMBOL_STACK_INDEX: 2
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: lm1394
IMAGE_NAME: lm1394.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 45081b76
SYMBOL_NAME: lm1394!IsochTxCallback+97
FAILURE_BUCKET_ID: 0x35_lm1394!IsochTxCallback+97
BUCKET_ID: 0x35_lm1394!IsochTxCallback+97
Followup: MachineOwner
---------