[NTOS:WMI][HAL]
authorThomas Faber <thomas.faber@reactos.org>
Fri, 4 Sep 2015 21:30:16 +0000 (21:30 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Fri, 4 Sep 2015 21:30:16 +0000 (21:30 +0000)
- Properly stub WmipShutdown and HalpDispatchPower to avoid IRP leaks
CORE-10105

svn path=/trunk/; revision=69013

reactos/hal/halx86/legacy/halpnpdd.c

index c6eb813..97eade1 100644 (file)
@@ -820,8 +820,23 @@ NTAPI
 HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject,
                   IN PIRP Irp)
 {
 HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject,
                   IN PIRP Irp)
 {
+    PFDO_EXTENSION FdoExtension;
+    
     DPRINT1("HAL: PnP Driver Power!\n");
     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
 }
 
 NTSTATUS