WinUSB
Encyclopedia
WinUSB is a generic USB driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

 provided by Microsoft, for their operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s starting with Windows Vista
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 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
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...

. 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
Media Transfer Protocol
The Media Transfer Protocol is a devised set of custom extensions to the Picture Transfer Protocol . Whereas PTP was designed for downloading photographs from digital cameras, Media Transfer Protocol supports the transfer of music files on digital audio players and media files on portable media...

 devices use WinUSB instead of the kernel mode filter driver.

Disadvantages

  • Only one application can access the device at a time
  • Doesn't support isochronous
    Isochronous
    Isochronous : From Greek iso, equal + chronos, time. It literally means regularly, or at equal time intervals. In general English language, it refers to something that occurs at a regular interval, of the same duration; as opposed to synchronous which refers to more than one thing happening at the...

     transfers
  • 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
Embedded system
An embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...

 is the USB communications device class
USB communications device class
USB communications device class is a composite Universal Serial Bus device class. It provides a single device class, but there may be more than one interface implemented such as a custom control interface, data interface, audio, or mass storage related interfaces.The communications device class is...

. A CDC device can appear as a virtual serial port to simplify the use of a new device for older applications.

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
Windows Driver Foundation
Windows Driver Foundation is a set of Microsoft tools that aid in the creation of device drivers for Windows 2000 and later versions of Windows....

.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK