How to Use WinUSB to Communicate with a USB Device

Updated: March 31, 2009
**
Download

How to Use WinUSB to Communicate with a USB Device

DownloadWinUsb_howto.docx
130 KB
Microsoft Word file
Updated: Mar 30, 2009
**

Independent hardware vendors (IHVs) who manufacture USB devices must often provide a way for applications to access the device's features. Historically, this has meant using the Windows Driver Model (WDM) to implement a function driver for the device and installing the driver in the device stack above system-supplied protocol drivers. The Windows Driver Foundation (WDF) is now the preferred model for USB drivers. It provides IHVs with three options for providing access to a USB device:

Implementing a user-mode driver by using the WDF user-mode driver framework (UMDF).

Implementing a kernel-mode driver by using the WDF kernel-mode driver framework (KMDF).

Installing WinUsb.sys as the device's function driver and providing an application that accesses the device by using the WinUSB API.

This information applies for the following operating systems:
Windows 7
Windows Server 2008
Windows Vista
Microsoft Windows XP

What's New:

Added new information for communicating with endpoints

Added a section on DFU to the WinUSB FAQ

Removed the note from Table 1 indicating that WinUSB does not support WinUSB selective suspend on Windows XP

Included in this white paper:

Summary of WinUSB, UMDF, and KMDF Capabilities

Guidelines for Providing Access to USB Devices

Introduction to WinUSB

WinUSB FAQ

How to Install WinUsb.sys as a Function Driver

How to Use the WinUSB API

Future Feature Considerations


Top of pageTop of page