Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Outline
What is UMDF? When should I use UMDF? When shouldnt I use UMDF? What does UMDF give me?
What kind of drivers can I write? What can my drivers do?
What next?
Goals
How UMDF fits into WDF Understand UMDFs capabilities
WDM Features
Asynchronous, packet-based I/O I/O Cancellation Layering of drivers Dynamic loading and unloading of drivers Plug and Play & Power management Low-level high-performance interfaces
WDM Advantages
Large device coverage Flexible
Current Model
WDM
WDM & NDIS WDM WDM WDM WDM
WDM
WMDM No support WDM (kernel), no support (user) WDM
Current Model
WDM
WDM & NDIS WDM WDM WDM WDM
WDM
WMDM No support WDM (kernel), no support (user) WDM
What is UMDF?
Implementation of the WDF Driver Model 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...
Driver Manager
CoInstaller
User Kernel
Reflector
Kernel Driver
... Kernel Driver
Provided by:
Microsoft ISV IHV
Device Stack
Software-only drivers
Filter drivers, virtualized serial port, etc
Current Devices
Portable Media Players, Cell Phones, PDAs/ActiveSync, Auxiliary Display, Cameras
Future Devices
Devices on future protocol busses Devices where driver can be split into ...
Small kernel-mode component to do hardware access Larger user-mode driver to provide complex functionality
Increased security
Compromised driver does not crash the system Lower privileges restrain a compromised driver
Recoverability
System can recover after a driver crash no blue-screens The driver can be restarted without rebooting
Escape to Win32 and user-mode services Standard facilities for Windows I/O model
PnP Device Discovery Synchronous & Asynchronous I/O with Cancellation Buffered and Direct I/O transfers
Common Concerns
Will a user-mode driver be fast enough?
UMDF driver can already flood a portable media device
UMDF may increase latency, but throughput remains high
Performance is one of our top priorities But its not always the top priority for driver developers
Balanced with improvements in quality, stability, security, etc...
Whats Next?
Development platform is the WDK/LDK Currently allows developing drivers for Longhorn But we know thats not enough
Plan to support Windows XP in Longhorn time-frame
Versioning support
Support for side-by-side installation
Beta program
Windows Driver Foundation Beta Program Invitation
http://www.microsoft.com/whdc/driver/wdf/beta.mspx
Call To Action
Install the Windows Driver Kit Join the WDF Beta Program
At http://beta.microsoft.com Guest ID: Guest4WDF
Additional Resources
Web Resources:
WDF Information:
http://www.microsoft.com/whdc/driver/wdf/default.mspx
Windows Debugger:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
External Resources
Introduction to the Windows Driver Foundation: How To Develop Device Drivers Using the Kernel Mode Driver Framework from OSR Press
Release date is September 2005 Focuses on KMDF but provides general WDF information as well