I write a code to detect USB connect/disconnec in Windows by capture WM_DEVICECHANGE event. When I connect my USB storage or my USB Wifi, the detected device is just GUID_DEVINTERFACE_USB_DEVICE, not what I want. I want the type of usb device that I connected to computer. I Recognize that the usb device has some child devices.

Do I have to browse all the child devices to find out the type of the main device?