diff --git a/reactos/hal/halx86/acpi/halpnpdd.c b/reactos/hal/halx86/acpi/halpnpdd.c index d63093c0b30..69cd896c9c5 100644 --- a/reactos/hal/halx86/acpi/halpnpdd.c +++ b/reactos/hal/halx86/acpi/halpnpdd.c @@ -822,8 +822,23 @@ NTAPI HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { + PFDO_EXTENSION FdoExtension; + DPRINT("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