J-Trace driver (WinUSB) is installed but the driver could not be started

From SEGGER Wiki
Revision as of 16:01, 16 October 2019 by Souhail (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Under Windows 10 the J-Link installer will successfully install the driver for J-Trace/J-Trace Pro. However under some circumstances the driver will be loaded and cannot be put into functional state.

Windows claims that the USB device is not recognized.

JLink-USBDeviceNotRecognized.png

Using the DeviceManager to look at the J-Trace Device Properties shows that the driver code not be started (Code 10). An additional error message says that a device which does not exist was specified.

JLink-DeviceProperties Code10.png

Even looking into Windows' EventViewer shows the mentioned error with some detailed information

JLink-DriverCode10 EventLog.png

.

But nonetheless it does not explain where the error is caused. Refer to Possible Problem Sources.

Solution

In order to solve this, the registry needs to be edited. Either by doing this manually and using the Registry Editor or using a simple batch file:

reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\vvvvppppbbbb" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VUSB3HUB\Parameters\vusbflags\vvvvppppbbbb" /f
pause

Wheras:

Id Description
vvvv Vendor Id of the device: SEGGER's VID is 1366
pppp Product Id of the device: J-Trace PID is normally 1020
bbbb BCD Version of the device (mentioned in the device descriptor: V 1.00 = [0x]0100)

Download this File:J-Trace MSOSDesc Removal.zip conatining a batch file as a sample reference for deleting these entries. Note: Please make sure that the batch is executed with administrative privileges, otherwise the entries will not be deleted.

Possible Problem Sources

The problem could be caused that the J-Trace/J-Trace Pro enumerated with valid MS OS Descriptors which is not necessary anymore. This feature has been disabled. Since Windows 10 still tries to retrieve this information, it will try to catch an internal device object which is not available anymore. Thus telling us that the mentioned device is not available. This can be disabled by removing the cached entry of the MS OS Descriptor information. This is stored in the registry. Refer to Solution