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 Server 2008
Windows Vista
Microsoft Windows XP
What's New:
| • | 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 |