Thanks, very nice doc, easy to navigate. I need to study it in detail. So far I am unclear why single USB device "belongs / need" multiple data / stuff like "human interface", "disk drive " , "volume" etc. I am still not clear when the OS detects valid "plug and pray" USB device , with internal resources already known, why it goes thru all those dialogs. I can see when external resources are needed, but I would expect that the OS would do , at least some stuff, "automatically" and just report " USB device installed , ready to run". Cheers Pf 2016 Addendum I think I just opened can of worms. Example I can plug in my Arduino development port to "direct" USB port,it installs (on XP) without single problem as plug and play.No restart. If I remove it and move it to my D-link port ABSOLUTELY nothing gets reported by XP. Needles to say Arduino IDE no longer recognizes the COMx port as active and the only way to get it back is to uninstall the COMx,and rescan for new hardware. Than XP goes thru clear install and ask for "restart". So far it looks as "chaining" USB - direct PC port , PCI USB interface and or D_link is pretty inconsistent. I just wonder ( rhetorical question only ! ) if newer versions of Windows work better?