Introduction to User-Mode Driver Framework. Outline What is UMDF? When should I use UMDF? When shouldn’t I use UMDF? What does UMDF give me? What kind.

Slides:



Advertisements
Similar presentations
Device Virtualization Architecture
Advertisements

Optimizing Device Drivers For Terminal Servers Plug And Play Device Redirection Framework Gaurav Daga Program Manager Windows Terminal Server Microsoft.
Windows Server Terminal Services Easy Print
User-Mode Driver Framework: Introduction And Overview
User-Mode Driver Framework: Technical Synopsis Peter Wieland Development Lead Windows Device Experience Group Microsoft Corporation.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
1 of 6 WINDOWS COMPARISION WINDOWSYEARSFEATURES WINDOWS The first version of windows provided a new software environment for developing and running.
New Biometric Framework and Driver Model
MCITP Guide to Microsoft Windows Server 2008 Server Administration (Exam #70-646) Chapter 11 Windows Server 2008 Virtualization.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 2: Managing Hardware Devices.
Device Driver Presented By: Syed Zulfiqar Ali Qurat Ul Ain Aslam
Operating Systems.
Computer Architecture Ports.  There are lots of external devices that you can connect to your computer. All external devices connect to the computer’s.
1 Chapter Overview Introduction to Windows XP Professional Printing Setting Up Network Printers Connecting to Network Printers Configuring Network Printers.
Introduction To The Wireless WAN Program Hong Liu Program Manager – WWAN Windows Networking and Devices Microsoft Corporation.
Configuring Print Services Lesson 7. Skills Matrix Technology SkillObjective DomainObjective # Deploying a Print ServerConfigure and monitor print services.
WDK Driver Test Manager. Outline HCT and the history of driver testing Problems to solve Goals of the WDK Driver Test Manager (DTM) Automated Deployment.
Ronen Gabbay Microsoft Regional Director Yside / Hi-Tech College
Rob Hwacinski Sr. Program Manager Lead Microsoft Corporation WEM206 Ashwin Kulkarni Sr. Product Manager Microsoft Corporation.
Best Practices for Developing Printer Drivers Justin Hutchings Program Manager Microsoft Corporation Shawn Maloney Program Manager Microsoft Corporation.
SP2 Mikael Nystrom. Agenda Översikt Installation.
Rally Technologies Spring 2008, Redmond, Washington Network Connected devices with Windows SideShow™ Teague Mapes, Lead Developer,
Windows Driver Foundation: Introduction Murtuza Naguthanawala Program Manager Networking And Devices microsoft.com Microsoft Corporation.
Using The WDK For Windows Logo And Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
David Harding Software Design Engineer Network Devices Platform Microsoft Corporation SoftAP-Based Test Infrastructure For Obtaining The Logo For WLAN.
Hands-On Microsoft Windows Server 2008
AHCI: ATAport Miniport Example. Outline AHCI Features Goals Basics AHCI ATA Miniport Design Philosophy Memory Structures and Resources Enumeration IO.
Wave Relay System and General Project Details. Wave Relay System Provides seamless multi-hop connectivity Operates at layer 2 of networking stack Seamless.
Using the WDK for Windows Logo and Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 2: Managing Hardware Devices.
Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation.
Device Drivers.
CMPF124:Basics Skills for Knowledge Workers Introduction to Windows OS.
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Windows NT Operating System. Windows NT Models Layered Model Client/Server Model Object Model Symmetric Multiprocessing.
A Critical Analysis of the Windows mLAN Driver
Enhanced Storage Architecture
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
The Next Generation Designed for Windows Logo Program: An Introduction Jon Morris Program Manager Windows Logo Program microsoft.com Microsoft.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
Customer and Partner Connections Design and Develop Assess and Certify.
1 Overview of Microsoft Windows 2000 Multipurpose OS Reduces total cost of ownership (TCO)
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 6A Operating System Basics PART I.
Technical Overview of Microsoft’s NetDMA Architecture Rade Trimceski Program Manager Windows Networking & Devices Microsoft Corporation.
Configuring Print Services Lesson 7. Print Sharing Print device sharing is another one of the most basic applications for which local area networks were.
Building Complete Web Application Using ASP.NET 3.5 & Visual Studio 2008 Omar Khan Group Program Manager Visual Studio.
Overview of today’s lecture Major components of an operating system Structure and internal architecture of an operating system Monolithic Vs Micro-kernels.
Rade Trimceski Program Manager Microsoft Corporation Mitesh Desai Software Design Engineer Microsoft Corporation.
Introduction to Operating Systems Concepts
Windows 8 Hardware Certification Program and KIT Overview
A Fast Track into Device Guard
Developing Drivers in Visual Studio
Introduction to Computers
I/O Manager, 64-bit Porting, and New Driver Models
Introducing low-power buses for Windows 8
11/8/2018 8:19 PM HW-98P Windows 8 kernel debugging: New protocols and certification requirements Tanya Radeva Program Manager Microsoft Corporation Joe.
Design Patterns for Connected Specialized Devices
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Overview of Computer Architecture and Organization
Overview of Computer Architecture and Organization
Best practices for packaging and distributing device drivers
Delivering great hardware solutions for Windows
Outline Operating System Organization Operating System Examples
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Windows Forms in Visual Studio 2005: An in-depth look at key features
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Introduction to User-Mode Driver Framework

Outline What is UMDF? When should I use UMDF? When shouldn’t 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 UMDF’s capabilities

Current Driver Models Windows has several different driver models Windows Driver Model (WDM) is the generic model Specific driver models for popular devices classes Storage, Networking, Printing, Imaging, etc... Some built on top of WDM. Others run as user-mode services. 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

Limitations with Current Models Generic driver model (WDM) is too complex Focuses on very advanced drivers which punishes simple ones Poor DDI design Device specific models have complexity of their own Often this bubbles through from WDM Developer trapped in device-specific model Poor knowledge transfer from one to the next Many drivers must be written in kernel mode Even though much functionality could be user mode Developers spend too much time driving our software Cannot concentrate on driving their hardware Driver quality suffers as a result Do not allow extension and future growth

Overview of Current Driver Models Device/Driver ClassesCurrent Model Display AdaptersVideo port Storage Adapters (SCSI & ATA)SCSIport, Storport, ATAport, Network AdaptersNDIS Video CaptureAvStream Audio AdaptersAVStream, PortCls File System filtersFS Mini filter PrintersUniDrv Scanners,CamerasWIA PCI, PC Card, generic filter driversWDM Modems, Cable ModemWDM & NDIS WDM Biometric DevicesWDM Smart Card DevicesWDM Keyboard/Mouse FiltersWDM Legacy Devices (Serial, Parallel)WDM Portable Media PlayersWMDM UPnP & Network Connected Devices, Cell PhonesNo support USB, 1394, Bluetooth, SD devicesWDM (kernel), no support (user) OthersWDM

Windows Driver Foundation We need a new generic driver model that... Scales conceptually from simple to extremely complex drivers Can be extended to domain specific models Can be validated at compile-time as well as run-time Windows Driver Foundation (WDF) consists of A generic driver model Implementations of that model Kernel Mode Driver Framework (KMDF) User Mode Driver Framework (UMDF) Driver Verification Tools Static Driver Verifier PREfast for Drivers

Windows Driver Foundation Goals Simplicity No harder than it needs to be to accomplish a task Fast time to market for drivers Let driver developers focus on their domain, not ours Reduce crashes and blue screens due to drivers Better customer experience helps everyone Provide complete driver development experience Develop and test Built-in diagnosability, tracing, verification tools Deployment and Install Support versioning

Windows Driver Foundation- Experience

Overview of Current (User) Driver Models Device/Driver ClassesCurrent Model Display AdaptersVideo port Storage Adapters (SCSI & ATA)SCSIport, Storport, ATAport, Network AdaptersNDIS Video CaptureAvStream Audio AdaptersAVStream, PortCls File System filtersFS Mini filter PrintersUniDrv Scanners,CamerasWIA PCI, PC Card, generic filter driversWDM Modems, Cable ModemWDM & NDIS WDM Biometric DevicesWDM Smart Card DevicesWDM Keyboard/Mouse FiltersWDM Legacy Devices (Serial, Parallel)WDM Portable Media PlayersWMDM UPnP & Network Connected Devices, Cell PhonesNo support USB, 1394, Bluetooth, SD devicesWDM (kernel), no support (user) OthersWDM

Why Build a User-Mode Framework? Difficult to provide high-quality drivers Crash statistics prove this WDF Framework makes drivers easier to write Lots of driver models already live in user space Printers, Audio, Imaging Divergent driver models has become a problem UMDF brings general-purpose model into user-mode General UMDF provides: Unified facilities Support for WDF model

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... UMDF and KMDF both share the WDF Model So learning how to use one will apply to the other But they are not source or binary compatible Have similar but not identical DDIs Each has additional functionality applicable to its domain

Device Stack Overview of the Architecture Provided by: Microsoft ISV IHV Driver Manager Host Process User Kernel Framework UM driver Framework UM driver Reflector... CoInstaller Kernel Driver

Who Should Use UMDF? Existing driver developers… Who want to move drivers to user space Who already have the “driver mindset” New driver developers… Coming from application development Who need to provide device support Who are learning new skills Anyone who wants to... Build a driver without a lot of development overhead Reduce the risks associated with traditional drivers Stop causing blue screens

Where can you use UMDF? Primary Scenarios “Protocol Bus” devices Devices attached to USB, 1394, TCP/IP, etc... 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

When and How To Use UMDF UMDF is a standard Windows codenamed “Longhorn” feature Support in WDK Build with the WDK Build Environment Standard device driver build environment No integration with Visual Studio

Why Use UMDF? Uses the WDF Driver Model Can learn a single model that applies to KM and UM drivers Faster development cycle Easier debugging on a single machine Crashes during development don’t require a reboot Access to user-mode services Win32 file I/O, Function Discovery, WINSOCK, RPC, Crypto But you have to be careful…

Why Use UMDF? Improved stability User-Mode Drivers are isolated from other drivers Kernel is isolated from user-mode drivers 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

Kernel-Mode or User-Mode Driver? You must use kernel mode when you: Need direct hardware access, for example, Require DMA Must handle interrupts Need access to device registers Have strict timing requirements UMDF will have increased latency Need kernel-only resources Or kernel components need access to your driver

Features You Can Use in Your Driver General WDF capabilities PnP/PM provides “opt-in” callbacks for various events Object model has context management & flow control I/O Targets allow driver to send new I/O requests Regardless of where the target device driver is running Coordinated with cancellation and cleanup 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 Standard INF Driven setup

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 it’s not always the top priority for driver developers Balanced with improvements in quality, stability, security, etc... Will a user-mode driver be secure? As secure as any other user-mode service RPC, LSASS, WinLogon, etc... A compromised user-mode driver is more contained Cannot crash the system or expose kernel secrets Will user-mode drivers be high quality drivers? We’ll continue to push to improve driver quality in all models UMDF will prevent badly behaved drivers from crashing the system

What’s Next? Development platform is the WDK/LDK Currently allows developing drivers for Longhorn But we know that’s 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

Call To Action Install the Windows Driver Kit Join the WDF Beta Program At Guest ID: Guest4WDF Evaluate UMDF for your driver projects Consider development time, customer support for system crashes, etc. Send Us Feedback - We want to know If UMDF will meet your needs What stops you from writing your drivers with UMDF microsoft.com

Additional Resources Web Resources: WDF Information: Windows Debugger: 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

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.