Author: vmikayelyan
Date: Fri Aug 19 16:20:32 2016
New Revision: 72378

URL: http://svn.reactos.org/svn/reactos?rev=72378&view=rev
Log:
usb: libusb: hub_controller: Fix PnP handler

In some cases our driver was changing IRP status in places where it
shouldn't.

Modified:
    branches/GSoC_2016/USB/sdk/lib/drivers/libusb/hub_controller.cpp

Modified: branches/GSoC_2016/USB/sdk/lib/drivers/libusb/hub_controller.cpp
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/USB/sdk/lib/drivers/libusb/hub_controller.cpp?rev=72378&r1=72377&r2=72378&view=diff
==============================================================================
--- branches/GSoC_2016/USB/sdk/lib/drivers/libusb/hub_controller.cpp    
[iso-8859-1] (original)
+++ branches/GSoC_2016/USB/sdk/lib/drivers/libusb/hub_controller.cpp    
[iso-8859-1] Fri Aug 19 16:20:32 2016
@@ -568,7 +568,8 @@
                     break;
                 }
             }
-            Status = STATUS_SUCCESS;
+            // Here we should leave Status as is.
+            Status = Irp->IoStatus.Status;
             break;
         }
         case IRP_MN_QUERY_CAPABILITIES:
@@ -611,6 +612,14 @@
             // handle device interface requests
             //
             Status = HandleQueryInterface(IoStack);
+
+            //
+            // If a bus driver does not export the requested interface, it
+            // should leave Status as is.
+            //
+            if (Status == STATUS_NOT_SUPPORTED)
+                Status = Irp->IoStatus.Status;
+
             break;
         }
         case IRP_MN_REMOVE_DEVICE:


Reply via email to