diff --git a/reactos/hal/halx86/legacy/halpnpdd.c b/reactos/hal/halx86/legacy/halpnpdd.c index c6eb8135750..97eade152d7 100644 --- a/reactos/hal/halx86/legacy/halpnpdd.c +++ b/reactos/hal/halx86/legacy/halpnpdd.c @@ -820,8 +820,23 @@ NTAPI HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { + PFDO_EXTENSION FdoExtension; + DPRINT1("HAL: PnP Driver Power!\n"); - return STATUS_SUCCESS; + FdoExtension = DeviceObject->DeviceExtension; + if (FdoExtension->ExtensionType == FdoExtensionType) + { + PoStartNextPowerIrp(Irp); + IoSkipCurrentIrpStackLocation(Irp); + return PoCallDriver(FdoExtension->AttachedDeviceObject, Irp); + } + else + { + PoStartNextPowerIrp(Irp); + Irp->IoStatus.Status = STATUS_SUCCESS; + IoCompleteRequest(Irp, IO_NO_INCREMENT); + return STATUS_SUCCESS; + } } NTSTATUS