[USBSTOR]

- Fix a bug in SRB queuing

svn path=/branches/usb-bringup-trunk/; revision=55166
This commit is contained in:
Cameron Gutman 2012-01-25 01:46:35 +00:00
parent e3d0e34a18
commit 6fab1a7c6a

View file

@ -142,6 +142,8 @@ USBSTOR_QueueAddIrp(
PFDO_DEVICE_EXTENSION FDODeviceExtension; PFDO_DEVICE_EXTENSION FDODeviceExtension;
BOOLEAN IrpListFreeze; BOOLEAN IrpListFreeze;
BOOLEAN SrbProcessing; BOOLEAN SrbProcessing;
PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
PSCSI_REQUEST_BLOCK Request = (PSCSI_REQUEST_BLOCK)IoStack->Parameters.Others.Argument1;
// //
// get FDO device extension // get FDO device extension
@ -201,10 +203,15 @@ USBSTOR_QueueAddIrp(
// //
if (SrbProcessing) if (SrbProcessing)
{ {
ASSERT(FDODeviceExtension->ActiveSrb != NULL);
OldDriverCancel = IoSetCancelRoutine(Irp, USBSTOR_Cancel); OldDriverCancel = IoSetCancelRoutine(Irp, USBSTOR_Cancel);
} }
else else
{ {
ASSERT(FDODeviceExtension->ActiveSrb == NULL);
FDODeviceExtension->ActiveSrb = Request;
OldDriverCancel = IoSetCancelRoutine(Irp, USBSTOR_CancelIo); OldDriverCancel = IoSetCancelRoutine(Irp, USBSTOR_CancelIo);
} }