Is it possible to see what usb devices are connected to a hub?

an example would be:

Onboard usb hub:
usb mass storage device
webcam imaging device

superspeed hub:
Mass storage device
Printer
MTD device

I am currently able to get a list of all connected devices with ManagementobjectCollection in C# but that doesn't give me any hierarchy (as far as I am aware).

I am not dead set on C#, I assumed that would be fastest way to get this up and running.

Thanks