According to MSDN: "PnP Manager queries a device's BusRelations (child devices) when the device is enumerated".
This change implements this behaviour in reactos (thanks Filip Navara for providing this good idea). Before, querying BusRelations was done only for ACPI/BUS_EXTENDER DeviceType.
Modified: trunk/reactos/ntoskrnl/io/device.c

Modified: trunk/reactos/ntoskrnl/io/device.c
--- trunk/reactos/ntoskrnl/io/device.c	2005-11-19 18:58:04 UTC (rev 19348)
+++ trunk/reactos/ntoskrnl/io/device.c	2005-11-19 19:10:13 UTC (rev 19349)
@@ -121,6 +121,7 @@
       }
 
       IopDeviceNodeSetFlag(DeviceNode, DNF_ADDED);
+      IopDeviceNodeSetFlag(DeviceNode, DNF_NEED_ENUMERATION_ONLY);
    }
 
    return STATUS_SUCCESS;
@@ -153,12 +154,11 @@
    }
    else
    {
-      if (Fdo->DeviceType == FILE_DEVICE_BUS_EXTENDER ||
-          Fdo->DeviceType == FILE_DEVICE_ACPI)
+	  if (IopDeviceNodeHasFlag(DeviceNode, DNF_NEED_ENUMERATION_ONLY))
       {
-         DPRINT("Bus extender found\n");
-
+         DPRINT("Device needs enumeration, invalidating bus relations\n");
          Status = IopInvalidateDeviceRelations(DeviceNode, BusRelations);
+		 IopDeviceNodeClearFlag(DeviceNode, DNF_NEED_ENUMERATION_ONLY);
       }
    }