From 4ed942b77e534f54ae7fd33bbe306b3ee4fc4439 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 8 Dec 2015 13:54:35 +0000 Subject: [PATCH] [CLASS2] - Properly forward PNP IRPs to the lower device CORE-8911 svn path=/trunk/; revision=70308 --- reactos/drivers/storage/class/class2/class2.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/storage/class/class2/class2.c b/reactos/drivers/storage/class/class2/class2.c index 151dab59f81..8a62f0df1cb 100644 --- a/reactos/drivers/storage/class/class2/class2.c +++ b/reactos/drivers/storage/class/class2/class2.c @@ -354,15 +354,15 @@ ScsiClassPlugPlay( { ASSERT(DeviceInfo->Signature == '2slc'); IoSkipCurrentIrpStackLocation(Irp); - return STATUS_SUCCESS; + return IoCallDriver(DeviceInfo->LowerDevice, Irp); } else if (IrpSp->MinorFunction == IRP_MN_REMOVE_DEVICE) { - PCLASS_DEVICE_INFO DeviceInfo = DeviceObject->DeviceExtension; - ASSERT(DeviceInfo->Signature == '2slc'); ScsiClassRemoveDriveLetter(DeviceInfo); + IoForwardIrpSynchronously(DeviceInfo->LowerDevice, Irp); + Irp->IoStatus.Status = STATUS_SUCCESS; IoCompleteRequest(Irp, IO_NO_INCREMENT); @@ -372,6 +372,12 @@ ScsiClassPlugPlay( } else { + if (DeviceInfo->Signature == '2slc') + { + IoSkipCurrentIrpStackLocation(Irp); + return IoCallDriver(DeviceInfo->LowerDevice, Irp); + } + Irp->IoStatus.Status = STATUS_NOT_SUPPORTED; IoCompleteRequest(Irp, IO_NO_INCREMENT); return STATUS_NOT_SUPPORTED;