Sign In | Register |
0

WinUSB Device Driver Not Installed

Technical Question - Created by James on 4/1/2016 10:04:47 AM
Actions

James

Posted
4 years ago

Hi Tyler,

I'm working with a composite device that utilizes both Mass Storage and WinUSB along with the DZX SDK.  When I plug the device into my Windows 7 machine, the MSD shows up properly, but the WinUSB device does not install.  In Device Manager the device is listed under "Other devices" and the driver is not available.  Of course this means that it is not available to connect to in the DZX USB Terminal either.  

Do I need to install a specific WinUSB driver for this device to work properly?  Is there a way to make it plug-and-play in the future?  Thoughts?

Thanks for your time and help,

James Tasker


Tyler

DZX Support
Posted
4 years ago

Hello James,


The USB device stack already supports sending descriptors to Windows to automatically load the driver. This should work for everything greater than XP. Here are a few things to check.

1. Be sure you call USBD_SetMicrosoftDescriptorSupport() to enable the sending of the Microsoft OS descriptors before calling USBD_Open().

2. If implementing a composite device, the WinUSB interface must be the first one. For example, you must create the WinUSB interface first and then the mass-storage interface second. Windows only supports automatically loading the driver for the first interface.

3. Windows will only retreive the information (through Microsoft OS descriptors) for loading the driver once and it keeps a cache of this based upon the device's VID/PID values. If along the way, you've connected your device as a non-composite device, or just a mass storage device, Windows can keep using it's cache rather than reloading the info from the device. You can clear this cache by manually uninstalling the driver within the Device Manager in Windows. Right click the device in the manager window and selected Uninstall. Then disconnect and reconnect your device and Windows will re-read the OS descriptors.

Let us know if these items don't help you get it working as expected.


-Tyler

James

Posted
4 years ago

Tyler,

I really appreciate the quick response.  I ran through the checklist of ideas that you provided and it seemed like everything was properly set up and nothing was out of line there.  But, I am confused about Windows automatically installing the winUSB driver (Winusb.sys) for computers running XP or newer.  I was able to follow the directions from the Windows Development Center and create an INF file to install the driver and it seems to work now without any problems, but it is definitely not the ideal solution.  Also, in that post it claims that one must be running Windows 8 or newer for the driver to be automatically installed.

I understand that this is more of a Windows issue than a DZX SDK issue, but have you ran into this issue in the past?  Is there a work around that I can do to get the device to automatically install the driver on a Windows 7 platform?


Thanks again for your help,

-James Tasker

Tyler

DZX Support
Posted
4 years ago

James,


I can confirm that it should work with Windows 7. I just tested and confirmed it again to be sure. I believe the support goes back to XP SP3, but with our testing, it didn't work on XP.

One thing to note is that it searches for the driver within Windows Updates for versions before Win8. I believe this feature can be disabled on a machine. Maybe that is the case for you? You can check by searching for 'Device Installation Settings' in the windows start menu. Then click the link 'Change device installation settings'. The dialog that is shown is set to 'Yes, do this automatically' for me.


-Tyler

James

Posted
4 years ago

Tyler,

It turns out our IT department has blocked all of the Windows Updates on our in-house computers and therefore prevents the computer from retrieving the Windows Update necessary to install the winUSB driver.  The issue had nothing to do with the SDK.  Case closed and thanks again for all your time.

-James Tasker

Reply