Just want to copy the comments on top of enum.c here.
````
 The enumeration process goes like this: 
 
    (1) Enumerate Host Controllers and Root Hubs 
    EnumerateHostControllers() 
    EnumerateHostController() 
    Host controllers currently have symbolic link names of the form HCDx, 
    where x starts at 0.  Use CreateFile() to open each host controller 
    symbolic link.  Create a node in the TreeView to represent each host 
    controller. 
 
    GetRootHubName() 
    After a host controller has been opened, send the host controller an 
    IOCTL_USB_GET_ROOT_HUB_NAME request to get the symbolic link name of 
    the root hub that is part of the host controller. 
 
    (2) Enumerate Hubs (Root Hubs and External Hubs) 
    EnumerateHub() 
    Given the name of a hub, use CreateFile() to map the hub.  Send the 
    hub an IOCTL_USB_GET_NODE_INFORMATION request to get info about the 
    hub, such as the number of downstream ports.  Create a node in the 
    TreeView to represent each hub. 
 
    (3) Enumerate Downstream Ports 
    EnumerateHubPorts() 
    Given an handle to an open hub and the number of downstream ports on 
    the hub, send the hub an IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 
    request for each downstream port of the hub to get info about the 
    device (if any) attached to each port.  If there is a device attached 
    to a port, send the hub an IOCTL_USB_GET_NODE_CONNECTION_NAME request 
    to get the symbolic link name of the hub attached to the downstream 
    port.  If there is a hub attached to the downstream port, recurse to 
    step (2).   
     
    GetAllStringDescriptors() 
    GetConfigDescriptor() 
    Create a node in the TreeView to represent each hub port 
    and attached device. 
````


---
Reply to this email directly or view it on GitHub:
https://github.com/libusbx/libusbx/issues/147#issuecomment-25148513
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to