WinUSB
   HOME

TheInfoList



OR:

WinUSB is a generic
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad ...
driver provided by Microsoft, for their
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s starting with
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
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 In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and sub ...
. The library provides access to the
pipe Pipe(s), PIPE(S) or piping may refer to: Objects * Pipe (fluid conveyance), a hollow cylinder following certain dimension rules ** Piping, the use of pipes in industry * Smoking pipe ** Tobacco pipe * Half-pipe and quarter pipe, semi-circular ...
s 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.


Advantages and disadvantages


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 A sequence of events is isochronous if the events occur regularly, or at equal time intervals. The term ''isochronous'' is used in several technical contexts, but usually refers to the primary subject maintaining a constant period or interval ( ...
transfers prior to Windows 8.1 * Doesn't support USB Reset (as requested by DFU protocol for example) * On other operating systems, the device still needs a custom driver


WCID

A WCID device, where WCID stands for "Windows Compatible ID", is a USB device that provides extra information to a Windows system, in order to facilitate automated driver installation and, in most circumstances, allow immediate access. WCID allows a device to be used by a Windows application almost as soon as it is plugged in, as opposed to the usual scenario where a USB device that is neither HID nor Mass Storage requires end-users to perform a manual driver installation. As such, WCID can bring the 'Plug-and-Play' functionality of HID and Mass Storage to any USB device (that sports a WCID aware firmware).WCID is an extension of the WinUSB Device functionality.


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 An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
is the
USB communications device class USB communications device class (or USB CDC class) is a composite Universal Serial Bus device class. The communications device class is used for computer networking devices akin to a network card, providing an interface for transmitting Ethernet ...
(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 /www.slideshare.net/YanVugenfirer/usb-dk-ataglance1 UsbDk UsbDk supports all device types including isochronous and provides simpler way for device access acquisition that does not involve
INF file Inf or INF may refer to: Politics * Intermediate-Range Nuclear Forces Treaty, a 1987 arms control treaty between the United States and the Soviet Union * International Naturist Federation, the global umbrella organisation representing official ...
s creation and installation. UsbDk i
open source
/github.com/daynix/UsbDk community supportedand 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

* * * The newest version can be found a
USB.org
{{Microsoft Windows components Windows components