Author: fireball Date: Thu Aug 23 23:41:38 2007 New Revision: 28486
URL: http://svn.reactos.org/svn/reactos?rev=28486&view=rev Log: - Set NULL Io cancel routine, fixes an assert when using usb storage driver.
Modified: trunk/reactos/drivers/usb/nt4compat/usbdriver/umss.c
Modified: trunk/reactos/drivers/usb/nt4compat/usbdriver/umss.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/nt4compat/usbdr... ============================================================================== --- trunk/reactos/drivers/usb/nt4compat/usbdriver/umss.c (original) +++ trunk/reactos/drivers/usb/nt4compat/usbdriver/umss.c Thu Aug 23 23:41:38 2007 @@ -1449,6 +1449,7 @@ //this device has its irp queued if (status == STATUS_CANCELLED) { + usb_dbg_print(DBGLVL_MAXIMUM, ("umss_complete_request(): status of irp is cancelled\n")); IoAcquireCancelSpinLock(&old_irql); if (dev_obj->CurrentIrp == pirp) { @@ -1462,8 +1463,15 @@ } } else + { // all requests come to this point from the irp queue IoStartNextPacket(dev_obj, FALSE); + + // we are going to complete the request, so set it's cancel routine to NULL + IoAcquireCancelSpinLock(&old_irql); + (void)IoSetCancelRoutine(pirp, NULL); + IoReleaseCancelSpinLock(old_irql); + }
pirp->IoStatus.Status = status;