From a97581c62d5528e84e9fcb92b4826e0c7b222a71 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sun, 6 Sep 2015 14:35:20 +0000 Subject: [PATCH] [NDIS] - 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 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/reactos/drivers/network/ndis/ndis/miniport.c index 53ca6596e08..5c9fd4a945d 100644 --- a/reactos/drivers/network/ndis/ndis/miniport.c +++ b/reactos/drivers/network/ndis/ndis/miniport.c @@ -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) {