MCHPUSB driver INF problem in Vista - fixed
I made an INF file based on the Microchip mchpusb.inf, changing what was required for my custom device. I used it to install the device on three different XP machines with no major problems. Then I tried it on my Vista laptop...[8|]
The first problem I had was that when you plug in a new USB device, you get the choice of having Vista install it automatically (which is guaranteed to fail), or browsing for a driver. When I chose that option, it told me it found a driver for it, but it was the previous driver for the usbser.sys for the CDC version. I have the same PID/VID so that probably confused Vista. It showed my device as a COM port without a driver. I had to uninstall it, and then reattach the device and opt out of the options, which left the device as an uninstalled Custom USB Device.
Now I tried to "Update Driver" from the Device Mangler and I was able to browse to my INF file which I had on a thumb drive. It started to install but then gave an error: "The data area is too small for a system call", and in the driver description it said "The system cannot find the requested file". I tried all sorts of things including updating Vista with the latest updates and SP1, which took a couple of hours, and still no joy when I tried once again to install my device.
So I looked closely at the driver INF files for the usbser.sys, which worked, and the mchpusb.sys, which did not. The usbser file was more complex, but I noticed that the device lists were much smaller, and in fact contained only the vid/pid for the custom device I am installing. So I changed the line from:
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_04D8&PID_000B, USB\VID_04D8&PID_000C, USB\VID_04D8&PID_01F0
USB\VID_04D8&PID_01F1, USB\VID_04D8&PID_01F2, USB\VID_04D8&PID_01F3, USB\VID_04D8&PID_01F4,
USB\VID_04D8&PID_01F5, USB\VID_04D8&PID_01F6,USB\VID_04D8&PID_FDCF,USB\VID_04D8&PID_FDCF\PST0123456
to as follows:
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\vid_04d8&pid_fdcf, USB\VID_04D8&PID_FDCF\PST0123456
And now it works a charm. But I just noticed that the original list of devices is missing a comma. And I just verified that it is also missing in the mchpusb.inf file in the stack supplied by Microchip, at least in my version 1.3 stack. I downloaded the most recent stack at work yesterday but I need to do that here as well.
It still seems odd that it bombed on Vista and not XP. Well, maybe that's not too much a surprise. I hope Win7 is better than Vista, as they claim, and more importantly
at least as good as XP.
Paul
post edited by PStechPaul - 2009/12/17 18:59:47