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: