Professional Documents
Culture Documents
Outline
Motivation and problem statement Opportunities to ease software development KMDF and USB devices
Architecture and scenarios IHV opportunities
Summary
APIs for USB function drivers standardized since Windows 98. However, it is hard to write a WDM driver for a simple USB device. Interesting statistics
100% of new systems have a USB port (generally 2.0 capable) Average user attaches at least 8+ devices to system over time
Legend
IHV or ISV Component Microsoft New Component
Application
Solution Encapsulate all the hard problems into one location Provide a solution which has good default behavior
Driver
WDF.SYS
Device
WDFUSBINTERFACE
Grouping object that contains WDFUSBPIPE objects for a configured interface
WDFUSBPIPE
WDF target object for non control endpoints
You can use KMDF USB functionality in both a full fledged WDF driver and in some existing WDM miniport models (e.g. NDIS-WDM)
What is UMDF
Implementation of the WDF Driver Model in User Mode Provides:
The infrastructure to run a device driver in user-mode The WDF I/O Pipeline and PnP/PM State Machine The core WDF objects
Devices, Files, Queues, Requests, I/O Targets, etc...
Legend
IHV or ISV Component New Microsoft Components Existing Microsoft Components
App
WinUSB . DLL
U
K
WinUSB.SYS
Solutions like HID are inefficient (need special H/W) IHVs dont want to be experts in complex driver models
Device
Value Statement: Make the common case simple, and the rest possible
Statistics
Performance
Able to maintain Hi-speed bus traffic at ~40MBps transfers !!! <10% CPU utilized by system on 3GHz machine with 512MB RAM
Power policies
AUTO_SUSPEND (DEFAULT: true) ENABLE_WAKE (DEFAULT: false) SUSPEND_DELAY (DEFAULT: 5 secs)
If the device is not exclusively controlled by a single Application all the time. You may need a central entity to manage the resource
E.g. serial<->USB NIC
If the device needs ISOC support or needs to control protocol timing very tightly
E.g. Conference Camera driver
KMDF will be made available on Windows 2000, but WinUSB may not
WinUsb without UMDF Used for exclusive devices where an application has full control of the device and is high degree of knowledge about the device
KMDF
User mode
No No Yes No No Yes
User mode
Yes Yes Yes No No Yes USB <-> Serial dongle
Kernel mode
Yes No Yes Yes Yes Yes
USB NIC
Call To Action
Beta test these features and provide feedback
KMDF WinUSB
Provide Microsoft with feedback on features that you need but NOT yet available/implemented Ensure that your device works on ALL 32- and 64-bit platforms Follow the details on www.microsoft.com/whdc to ensure that your device is tested for Windows Logo Program
Additional Resources
Email: windf @ microsoft.com Web Resources:
Whitepapers: http://www.microsoft.com/whdc Other Resources:
Windows Development Kit for documentation