winusb device fails to start (error code 10) in Windows 10 RRS feed

  • Question

  • I have a winusb device that will not enumerate on some windows 10 machines. I can see device manager loaded the appropriate driver (winusb.sys) but it says failed to start, I see the yellow exclamation point. The interesting thing is if I right click and uninstall the device and then do a refresh the device enumerates as expected. If I unplug the device I have to do this all over again.

    The device returns the appropriate Microsoft compatibly id descriptors and I see all the appropriate registry keys but it will not start. We have an inf file that we use for windows 7 but windows 10 will not let me use it, it says windows already found the best drivers.

    I could really use some help on this, ive been spinning my wheels for weeks. I don't feel like this is the greatest explanation but I don't know how else to explain it.

    Thursday, June 28, 2018 7:19 PM

All replies

  • Is it a self-made device (hardware or firmware)?

    -- pa

    Thursday, June 28, 2018 10:25 PM
  • you need to capture a usb etw log and see what is going on.  this has nothing to do with an INF as winusb is installing properly on windows 10. a failure to start means winusb was installed and failed to initialize the device, probably related to query or set config.  the etw log will say for sure.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, June 29, 2018 4:33 AM
  • To capture a usb etw log, you can refer to following links.


    Tuesday, July 3, 2018 12:51 AM
  • Hi,

    I have the same problem.

    I'm using MS OS Descriptors 1.00. When connecting to Win 10 1803 i get error in device manager


    This device cannot start. (Code 10)

    {Operation Failed}
    The requested operation was unsuccessful."

    I used Microsoft Message Analyzer to capture log.

    ETW trace (as per:

    I istalled WDK 10 and Netmon 3.4 but have parsers loading errors ( Therefore i can't verify it ETW log contains useful information.

    I also include log from my device:

    Friday, May 10, 2019 9:42 AM
  • Is it a self-made device? If yes - is it recognized without the MS descriptor?

    -- pa

    Friday, May 10, 2019 9:52 AM
  • Yes it is self made device, MS OS descriptors made according to

    This FW works with windows 7.

    I also found this thread with same symptoms:   

    When i uninstall driver in device manager and press "Scan for Hardware Changes", device installs without errors. Unfortunately Registry Enum\USB\<mydev VID PID>\<dev instance> has no "Device Parameters" subkey and has no "DeviceInterfaceGUID". Though when device connects with error 10, Device Parameters subkey and DeviceInterfaceGUID are set correct, similar to those, I get with Windows 7.

    I removed MS OS string descriptor form FirmWare. Also deleted register subkey CurrenControlSet\Control\usbflags\<Vid Pid Rev>.

    Using program, called Zadig i was able to install Winusb drivers for my device, without errors. Device works.

    VID: 04D8, PID: 0060

    Friday, May 10, 2019 10:48 AM
  • Can you get a trace with a USB sniffer?

    -- pa

    Sunday, May 12, 2019 4:12 PM
  • I only have Software USB packet analyzer "USBTrace". I could do traces next week.
    Tuesday, May 14, 2019 4:10 PM
  • The dump says your device is connecting as a high-speed device.  Now, 04D8 is a Microchip part, and many of their parts only connect as full-speed devices.  Which part is it?  Is it supposed to be high-speed?

    If you are trying to run high speed, then the problem is your descriptors.  You have two bulk endpoints specifying a max packet size of 64 bytes, but in a high-speed device, bulk endpoints MUST have a max packet size of 512 bytes.  Each version of Windows has grown picker about adhering to the standard.

    Tim Roberts | Driver MVP Emeritus | Providenza &amp; Boekelheide, Inc.

    Wednesday, May 15, 2019 12:05 AM
  • Yes, it is high speed device.

    I have read few sources about USB 2.0, but wasn't sure 512 is only available option for HighSpeed.

    64 bytes bulk transfers used because it's easier to make single transfer from multiple buffers.

    Strange thing is that if i use microchip's mchpusb drivers or if i manually install WinUSB drivers, device works OK.

    Next week I'll report how it behaves with changed endpoint descriptors.

    Wednesday, May 15, 2019 6:16 AM
  • > ... it's easier to make single transfer from multiple buffers ...

    Easier how?  In the microcode?  If so, you might consider switching to interrupt endpoints.  An interrupt endpoint CAN have a 64-bit max packet size, and except for the timing, works identically to a bulk endpoint.

    Tim Roberts | Driver MVP Emeritus | Providenza &amp; Boekelheide, Inc.

    Wednesday, May 15, 2019 6:43 PM