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: 8119b6d8, Address of the IRP
Arg2: 00001c13
Arg3: 00000000
Arg4: 00000000
IoSetCompletionRoutine(Irp,SfReadCompletion,&waitEvent,true,true,true);
status = IoCallDriver(devExt->AttachedToDeviceObject,Irp);
if (STATUS_PENDING == status)
{
status = KeWaitForSingleObject(&waitEvent,Executive,KernelMode,FALSE,NULL);
}
if (Irp->IoStatus.Status == STATUS_SUCCESS)
{