From: Pierre Schweitzer Date: Thu, 7 Jan 2016 19:23:55 +0000 (+0000) Subject: [FDC] X-Git-Tag: ReactOS-0.4.0~15^2~13 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=d5691eba70fa00e17c29a6d8bfc5e2d468c53667;ds=sidebyside [FDC] Fix FdcPower() stub so that it doesn't leak IRP on shutdown Dedicated to Thomas. CORE-10117 svn path=/trunk/; revision=70531 --- diff --git a/reactos/drivers/storage/fdc/fdc/fdc.c b/reactos/drivers/storage/fdc/fdc/fdc.c index 88ba7d4d531..08263a55ff6 100644 --- a/reactos/drivers/storage/fdc/fdc/fdc.c +++ b/reactos/drivers/storage/fdc/fdc/fdc.c @@ -143,8 +143,34 @@ NTAPI FdcPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { + PIO_STACK_LOCATION IrpSp; + NTSTATUS Status = Irp->IoStatus.Status; + PFDO_DEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension; + DPRINT("FdcPower()\n"); - return STATUS_UNSUCCESSFUL; + + IrpSp = IoGetCurrentIrpStackLocation(Irp); + + if (DeviceExtension->Common.IsFDO) + { + PoStartNextPowerIrp(Irp); + IoSkipCurrentIrpStackLocation(Irp); + return PoCallDriver(DeviceExtension->LowerDevice, Irp); + } + else + { + switch (IrpSp->MinorFunction) + { + case IRP_MN_QUERY_POWER: + case IRP_MN_SET_POWER: + Status = STATUS_SUCCESS; + break; + } + PoStartNextPowerIrp(Irp); + Irp->IoStatus.Status = Status; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return Status; + } }