I have a security device that enumerates properly and the driver installs using COM25. However, I get 'Cannot Start this Hardware. The device cannot start Code (10).' What causes this?
I used Jan's Device Descriptor in the CDC Device Section with MAXPACKETSIZE = 8. That causes enumeration not to work. When I use 64, which is common from other descriptors I see online, it works. Is this a made up size? What would cause it to work with 64 and not with 8?
My device installs on COM25. I was a little surprised, because I don't have that many devices installed. In Device Manager (WinXP), I have 4 COM devices, 1,2,13, and 25. If I go to my device and act like I'm going to change the port number, it shows 1-25 in use. Why the discrepancy? I tried rebooting, and no change. Is there a tool that shows what processes are using which COM port? Are there TSRs from startup that are creating virtual COM ports in the background that transparent to the user?
There are a lot of enumeration writeups online. Jan's book is very good. Is there a writeup on enumeration (say for a CDC) that shows more detailed steps on how the host and device send, receive, and interpret the data to get a better understanding of what is done behind the scenes. For example, I use a analyzer to show USB data and for the most part, I understand the data. However, there are cases where a GET STRING DESCRIPTOR command is done multiple times. It looks like it gets through the index, manufacturer, version, etc. However, it seems to ask for this info sometimes up to four times. Some other times twice. It's random. It would be nice to understand what the host is wanting and for what reason.
Sutton