And I have some code to enumerate the USB Tree.
Ah, you are working on a "USB Tree", instead of Device Tree.
Is your code based on USBView example on WDK?
C:\WINDDK\7600.16385.1\src\usb\usbview\
In above example, DriverNameToDeviceDesc() is called by EnumerateHubPorts() in enum.c, to get the description of the target device. DriverNameToDeviceDesc() (devnode.c) traverses Device Tree, and it finds the devInst of the target device. This devInst is the same one as SP_DEVINFO_DATA.DevInst on the Setup-System.
Tsuneo