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);
}
}