Signal USB device arrivals to PnP manager
Modified: trunk/reactos/drivers/usb/usbhub/usbhub.c
Modified: trunk/reactos/drivers/usb/usbport/hcd.h
Modified: trunk/reactos/drivers/usb/usbport/hub.c
Modified: trunk/reactos/drivers/usb/usbport/usb.c

Modified: trunk/reactos/drivers/usb/usbhub/usbhub.c
--- trunk/reactos/drivers/usb/usbhub/usbhub.c	2005-09-11 13:55:18 UTC (rev 17799)
+++ trunk/reactos/drivers/usb/usbhub/usbhub.c	2005-09-11 13:55:23 UTC (rev 17800)
@@ -99,6 +99,7 @@
 		IoDeleteDevice(Fdo);
 		return Status;
 	}
+	DeviceExtension->dev->dev.dev_ext = Pdo;
 	
 	DeviceExtension->IsFDO = TRUE;
 	Fdo->Flags |= DO_POWER_PAGABLE;

Modified: trunk/reactos/drivers/usb/usbport/hcd.h
--- trunk/reactos/drivers/usb/usbport/hcd.h	2005-09-11 13:55:18 UTC (rev 17799)
+++ trunk/reactos/drivers/usb/usbport/hcd.h	2005-09-11 13:55:23 UTC (rev 17800)
@@ -453,7 +453,14 @@
 
 static inline void usbfs_add_bus(struct usb_bus *bus) {}
 static inline void usbfs_remove_bus(struct usb_bus *bus) {}
-static inline void usbfs_add_device(struct usb_device *dev) {}
+static inline void usbfs_add_device(struct usb_device *dev)
+{
+	if (dev->parent)
+	{
+		PDEVICE_OBJECT Pdo = (PDEVICE_OBJECT)dev->parent->dev.dev_ext;
+		IoInvalidateDeviceRelations(Pdo, BusRelations);
+	}
+}
 static inline void usbfs_remove_device(struct usb_device *dev) {}
 static inline void usbfs_update_special (void) {}
 

Modified: trunk/reactos/drivers/usb/usbport/hub.c
--- trunk/reactos/drivers/usb/usbport/hub.c	2005-09-11 13:55:18 UTC (rev 17799)
+++ trunk/reactos/drivers/usb/usbport/hub.c	2005-09-11 13:55:23 UTC (rev 17800)
@@ -1053,6 +1053,7 @@
 		/* Run it through the hoops (find a driver, etc) */
 		if (!usb_new_device(dev, &hub->dev)) {
 			hub->children[port] = dev;
+			usbfs_add_device(dev);
 			goto done;
 		}
 

Modified: trunk/reactos/drivers/usb/usbport/usb.c
--- trunk/reactos/drivers/usb/usbport/usb.c	2005-09-11 13:55:18 UTC (rev 17799)
+++ trunk/reactos/drivers/usb/usbport/usb.c	2005-09-11 13:55:23 UTC (rev 17800)
@@ -1259,7 +1259,7 @@
 		usb_create_driverfs_intf_files (interface);
 	}
 	/* add a /proc/bus/usb entry */
-	usbfs_add_device(dev);
+	//usbfs_add_device(dev);
 
 	return 0;
 fail: