Puneet Varma (Editor)

WinUSB

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Microsoft

Operating system
  
Microsoft Windows

Development status
  
Active

Type
  
Device driver

Website
  
msdn.microsoft.com/en-us/library/windows/hardware/ff540196.aspx

WinUSB is a generic USB driver provided by Microsoft, for their operating systems starting with Windows Vista but which is also available for Windows XP. It is aimed at simple devices that are accessed by only one application at a time (for example instruments like weather stations, devices that only need a diagnostic connection or for firmware upgrades). It enables the application to directly access the device through a simple software library. The library provides access to the pipes of the device. WinUSB exposes a client API that enables developers to work with USB devices from user-mode. Starting with Windows 7, USB MTP devices use WinUSB instead of the kernel mode filter driver.

Contents

Advantages

  • Doesn't require the knowledge to write a driver
  • Speeds up development
  • Disadvantages

  • Only one application can access the device at a time
  • Doesn't support isochronous transfers prior to Windows 8.1
  • On other operating systems, the device still needs a custom driver
  • Other solutions

    One solution is the use of a predefined USB device class. Operating systems provide built-in drivers for some of them. The most widely used device class for embedded devices is the USB communications device class (CDC). A CDC device can appear as a virtual serial port to simplify the use of a new device for older applications.

    Another solution is UsbDk. UsbDk supports all device types including isochronous and provides simpler way for device access acquisition that does not involve INF files creation and installation. UsbDk is open source, community supported and works on all Windows versions starting from Windows XP.

    If the previous solutions are inappropriate, one can write a custom driver. For newer versions of Microsoft Windows, it can be done using the Windows Driver Foundation.

    References

    WinUSB Wikipedia