windowsusbdriverinf

How to install WinUSB driver through customized inf file on Windows 10?


I need to communicate with a simple custom device directly through USB. I have full specifications for communication protocol. Unfortunately, the device vendor did not provide WinUSB driver for the device.

According to https://msdn.microsoft.com/en-us/library/ff540283.aspx#inf I should be able to install WinUSB driver automatically on Windows 10 using the inf template.

But installation fails with:

The third-party INF does not contain digital signature information.

As I understand, it is looking for a signed .cat file. But in this case I have no any files to sign nor .cat file. I just want to install Windows own WinUSB driver for the device, and clearly Windows drivers should be signed by Microsoft.

How do I proceed to install the .inf file?


Solution

  • If you only care about supporting Windows 8.1 and later, and you have the ability to change the device's firmware, you might consider using Microsoft OS 2.0 Descriptors. This will allow a Windows computer to recognize the device as a WinUSB device and automatically load the WinUSB driver.

    Another option would be to use Zadig or the related library libwdi to install the driver for your device. I would only recommend this for small, temporary, or organization-internal installations since it is kind of a hack (it installs its own certificate into your Trusted Root Certification Authorities list).

    You could also look into disabling driver signature enforcement on your computer if you want to use the unsigned INF file.

    If none of those options are going to work for you, then you need to look into buying a code-signing certificate from a certificate authority and signing your driver. Code signing for Windows is an ever-evolving field but my article Practical Windows Code and Driver Signing attempts to document what you need to know.