https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6c3a10c55a6a2f93f5b87…
commit 6c3a10c55a6a2f93f5b87e4930dde22f0099c9a8
Author:     Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Wed Mar 6 14:57:01 2019 +0100
Commit:     Thomas Faber <thomas.faber(a)reactos.org>
CommitDate: Fri May 1 12:05:06 2020 +0200
    [USBCCGP] Always forward device relations IRPs.
---
 drivers/usb/usbccgp/fdo.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/usbccgp/fdo.c b/drivers/usb/usbccgp/fdo.c
index 927d19ef0f9..f3b3c6ec41a 100644
--- a/drivers/usb/usbccgp/fdo.c
+++ b/drivers/usb/usbccgp/fdo.c
@@ -119,7 +119,7 @@ FDO_DeviceRelations(
     if (IoStack->Parameters.QueryDeviceRelations.Type != BusRelations)
     {
         /* FDO always only handles bus relations */
-        return USBCCGP_SyncForwardIrp(FDODeviceExtension->NextDeviceObject, Irp);
+        return STATUS_SUCCESS;
     }
     /* Go through array and count device objects */
@@ -159,6 +159,7 @@ FDO_DeviceRelations(
     /* Store result */
     Irp->IoStatus.Information = (ULONG_PTR)DeviceRelations;
+    Irp->IoStatus.Status = STATUS_SUCCESS;
     /* Request completed successfully */
     return STATUS_SUCCESS;
@@ -420,7 +421,14 @@ FDO_HandlePnp(
         {
             /* Handle device relations */
             Status = FDO_DeviceRelations(DeviceObject, Irp);
-            break;
+            if (!NT_SUCCESS(Status))
+            {
+                break;
+            }
+
+            /* Forward irp to next device object */
+            IoSkipCurrentIrpStackLocation(Irp);
+            return IoCallDriver(FDODeviceExtension->NextDeviceObject, Irp);
         }
         case IRP_MN_QUERY_CAPABILITIES:
         {