[NDIS]
authorThomas Faber <thomas.faber@reactos.org>
Sun, 6 Sep 2015 14:35:20 +0000 (14:35 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 6 Sep 2015 14:35:20 +0000 (14:35 +0000)
- Better stub power IRP handling. Failing IRP_MN_SET_POWER is illegal!
CORE-10117

svn path=/trunk/; revision=69055

reactos/drivers/network/ndis/ndis/miniport.c

index 53ca659..5c9fd4a 100644 (file)
@@ -2398,6 +2398,19 @@ NdisIDispatchPnp(
   return IoCallDriver(Adapter->NdisMiniportBlock.NextDeviceObject, Irp);
 }
 
+NTSTATUS
+NTAPI
+NdisIPower(
+    _In_ PDEVICE_OBJECT DeviceObject,
+    _In_ PIRP Irp)
+{
+  PLOGICAL_ADAPTER Adapter = DeviceObject->DeviceExtension;
+
+  PoStartNextPowerIrp(Irp);
+  IoSkipCurrentIrpStackLocation(Irp);
+  return PoCallDriver(Adapter->NdisMiniportBlock.NextDeviceObject, Irp);
+}
+
 NTSTATUS
 NTAPI
 NdisIAddDevice(
@@ -2580,6 +2593,12 @@ NdisGenericIrpHandler(
         {
             return NdisIDeviceIoControl(DeviceObject, Irp);
         }
+        else if (IrpSp->MajorFunction == IRP_MJ_POWER)
+        {
+            return NdisIPower(DeviceObject, Irp);
+        }
+        NDIS_DbgPrint(MIN_TRACE, ("Unexpected IRP MajorFunction 0x%x\n", IrpSp->MajorFunction));
+        ASSERT(FALSE);
     }
     else if (DeviceObject->DeviceType == FILE_DEVICE_NETWORK)
     {