Hello everybody,
I was trying to make asynchrous reads from the application on the driver. At
the driver side I am trying to queue the IRP. My system crashed with the
code MULTIPLE_IRP_COMPLETE_REQUESTS.
The following is the error message from the debugger. Can anyone give some
comments?
Thanks a lot!
Yuanhui
*** Fatal System Error: 0x00000044
(0xFFAAF528,0x00000CCA,0x00000000,0x00000000)
Break instruction exception - code 80000003 (first chance)
A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.
A fatal system error has occurred.
****************************************************************************
***
* *
* Bugcheck Analysis *
* *
****************************************************************************
***
Use !analyze -v to get detailed debugging information.
BugCheck 44, {ffaaf528, cca, 0, 0}
Probably caused by : ndishk.sys ( ndishk!NdishkDispatchRequest+18b )
Followup: MachineOwner
nt!RtlpBreakWithStatusInstruction:
80452e70 cc int 3
kd> !analyze -v
****************************************************************************
***
* *
* Bugcheck Analysis *
* *
****************************************************************************
***
MULTIPLE_IRP_COMPLETE_REQUESTS (44)
A driver has requested that an IRP be completed (IoCompleteRequest()), but
the packet has already been completed. This is a tough bug to find because
the easiest case, a driver actually attempted to complete its own packet
twice, is generally not what happened. Rather, two separate drivers each
believe that they own the packet, and each attempts to complete it. The
first actually works, and the second fails. Tracking down which drivers
in the system actually did this is difficult, generally because the trails
of the first driver have been covered by the second. However, the driver
stack for the current request can be found by examining the DeviceObject
fields in each of the stack locations.
Arguments:
Arg1: ffaaf528, Address of the IRP
Arg2: 00000cca
Arg3: 00000000
Arg4: 00000000
Debugging Details:
IRP_ADDRESS: ffaaf528
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x44
LAST_CONTROL_TRANSFER: from 8042bcb9 to 80452e70
STACK_TEXT:
fe6787e8 8042bcb9 00000003 fe678830 ffaaf528
nt!RtlpBreakWithStatusInstruction
fe678818 8042c068 00000003 ff0e43b0 ffaaf528 nt!KiBugCheckDebugBreak+0x31
fe678ba0 8041f68a 00000000 ffaaf528 00000cca nt!KeBugCheckEx+0x37b
fe678bd4 fc698e0e 80000014 0000000e 5deb0025 nt!IopfCompleteRequest+0x32
fe678c0c 8041f54b ff0e43b0 ffaaf528 ffaaf528
ndishk!NdishkDispatchRequest+0x18b [C:\NDISPIM\BASE\NTPIMEB\iodev.c @ 207]
fe678c20 804ba5e8 ffa74392 00000000 ffaaf528 nt!IopfCallDriver+0x35
fe678c34 804ac5de ff0e43b0 ffaaf528 ffa2c768
nt!IopSynchronousServiceTail+0x60
fe678d00 804a8f1e 0000002c 00000000 00000000 nt!IopXxxControlFile+0x5e4
fe678d34 80461691 0000002c 00000000 00000000 nt!NtDeviceIoControlFile+0x28
fe678d34 77f96be2 0000002c 00000000 00000000 nt!KiSystemService+0xc4
0006ed34 0040181c 0000002c 80000014 0006edac ntdll!ZwDeviceIoControlFile+0xb
WARNING: Frame IP not in any known module. Following frames may be wrong.
0006ed34 0040181c 0000002c 80000014 0006edac 0x40181c
0006eee0 00401909 00000000 00000000 7ffdf000 0x40181c
0012ff80 00402429 00000002 00300ea0 00300df0 0x401909
0012ffc0 77e87903 00000000 00000000 7ffdf000 0x402429
0012fff0 00000000 00402340 00000000 000000c8 0x77e87903
FOLLOWUP_IP:
ndishk!NdishkDispatchRequest+18b
fc698e0e 8b45f0 mov eax,[ebp-0x10]
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: ndishk!NdishkDispatchRequest+18b
MODULE_NAME: ndishk
IMAGE_NAME: ndishk.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 3d8b7b90
STACK_COMMAND: kb
BUCKET_ID: 0x44_ndishk!NdishkDispatchRequest+18b
Followup: MachineOwner