WinUSB
Developer(s)
Microsoft
Development status
Active
Operating system
Microsoft Windows
Type
Device driver
Website
msdn.microsoft.com/en-us/library/windows/hardware/ff540196.aspx
WinUSB is a generic USB driver provided by Microsoft, for theiroperating 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
[hide]
1 Advantages and disadvantages
1.1 Advantages
1.2 Disadvantages
2 Other solutions
3 References
[edit]Advantages and disadvantages
[edit]Advantages
Doesn't need the knowledge to write drivers
Speeds up development
[edit]Disadvantages
Only one application can access the device at a time
Doesn't support isochronous transfers
On other operating systems, the device still needs a custom driver
[edit]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. 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.
[edit]References
"How to Use WinUSB to Communicate with a USB Device". Microsoft. 2007-12-05. Retrieved 2008-07-09.
"WinUSB". Microsoft Developer Network. Retrieved 2010-07-07.
"USB 2.0 Specification". USB Implementers Forum, Inc.. 2007-03-15. Retrieved 2007-03-27.[dead link] The newest version can be found at USB.org