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
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
(March 2010): Updated the INF sample in the section "How to Install WinUsb.sys as a Function Driver.”
Included in this white paper:
Summary of WinUSB, UMDF, and KMDF Capabilities
Guidelines for Providing Access to USB Devices
Introduction to WinUSB
How to Install WinUsb.sys as a Function Driver
How to Use the WinUSB API
Future Feature Considerations
Help us help you
Answer questions that we’ll use to make the Dev Center better.
Was this page helpful?
Your feedback about this content is important Let us know what you think.