- Silicon Labs Community
- Welcome and Announcements
- Silicon Labs Knowledge Base
- 8-bit MCU
- 32-bit MCU
- Bluetooth / Wi-Fi
- Other Products Category
- Optical/RH/Temp Sensor
- Other Products
- Hardware and Software Tools
- Simplicity Studio and Software
- General Discussions and Suggestions
- Chinese Forum
- Software Libraries
- Development Kits
- Reference Designs
- Third Party Tools
- White Papers
- Official Blog of Silicon Labs
- Chinese Blog
11-25-2003 11:44 AM
When a USB device is pluged and when an enumeration is completed - Windows add a new USB device to the Device Manager in the Control Panel.
I'm interested where changes, made by Device Manager, can be noticed; which registers change and if this registers can accessed; and also reading error codes?
Thanks in advance!
11-25-2003 05:52 PM
When the device is enumerated on the bus it is installed in the Windows Registry according to the bus type (USB) and the device's Globally Unique Identifier(GUID). The device manager is simply a tool for safely interacting with the registry.
If you are looking for device error codes, and specifics about accessing and manipulating the Windows registry check out:
If you are specifically interested in device manager type functions check out the DevCon SetupAPI example in the Windows XP DDK(Driver Development Kit).
The registry can be difficult to deal with, which is why USBXpress extracts the necessary product strings from the registry for you, so that you can communicate with your device. Do you have any more specifics on what you are attempting to accomplish?
11-26-2003 03:46 AM
Well when I use API function F32x_ResetDevice - device resets and than take some time that the host removes and adds USB device to the Device Manager. I want to know when a device and the host are ready to communicate so that I can re-open device (F32x_Open).
12-01-2003 01:32 PM
Interfacing with the registry directly would do nothing more than what F32x_Open already does. If the device is not present then it is not enumerated in the registry and any attempts to get information from this device will fail.
The function F32x_Open will fail and give you an error code until the device becomes present. You should be able to create a loop to wait until F32x_Open succeeds and the device becomes available.