Title: Developing Great Devices for Windows PCs
1Developing Great Devices for Windows PCs
- Kosar A. Jaff
- Product Unit Manager
- Windows
- Device Experience Group
- Microsoft Corporation
2Key Topics
- Evolution of PCs and Devices
- Old Problems, New solutions
- Advances in Device Driver Models, Installation
- New Problems, New solutions
- Advances in Connectivity
- The Microsoft Windows PCs Role
- Create opportunity, Advance the Experience
- Calls to Action
- What you can do today on Windows XP
- What you can do to get ready for Longhorn
3The PC of Today
- Advanced CPUs -- Multiple Cores, 64-bit
- Lots of memory many threads, tasks
- Lots of storage easily expandable
- Power friendly on demand on/off/sleep
- Rich Connectivity any bus, any radio
- Dependable Protocols secure, powerful
- Dependable Platforms easy, stable
4The Power of a Distributed System
- Powerful computational elements on a
heterogeneous network - Marching to Moores and Metcalfes Drumbeats
- Ex 64-bit base data width ? powerful machines at
every price point - Ex Multiple cores, HyperThreaded CPUs
- Ex Multiple radios / system (Bluetooth, UWB,
802.11x, WiMax) - Everything is connected
- From the PC to the tiniest device
- From Local connectivity to broad web-based
connectivity - Ex Microsoft SPOT-based Watch -- small,
connected, and smart - Smart System Software Protocols Link It All
Together - Applications need not know if devices are near or
far - Devices can depend on rich computational elements
- Standardized protocols massive
interoperability - A whole new ecosystem, a whole new business model
- Spreads the power of the PC platform across a
broad network - Scale from local connectivity to local networks
to the web
5Device Connectivity Landscape
32-bit
System Advances
64-bit
Wired
Wireless
USB 2.0
Advanced Wireless Devices
Built-in Isoch, Rich Ecosystem, Software
Support Ease of Use
MBOA 802.15.3
WiFi, WiMax
802.15.1,2
IEEE 1394
802.15.4
Device Functionality
Simplified Ad-Hoc Nets
Simple installation
USB 1.x
Bluetooth
Rich Protocols (web services)
IP Devices
Automation/ Control
Connectivity Complexity (Device models, Bus
Speeds, Transfer Types, Ease of Use)
6The Device of Today
- Critical question where should I invest?
- On standardized connectivity invest in
functionality - Ex USB 2.0-based TV Tuner encoding to WMV
- Ex USB 2.0-based Hard Drive for AV uses
- Ex Bluetooth Audio Devices decoding SBC
- On emerging connectivity invest in the basics
- Ex Networked devices using UPnP Ease of
Deployment - Ex Wireless USB using UWB security, PnP
- The Windows PC can help
7The Windows PC and Devices
- Connects Controls any device flawlessly
- Good today (USB, 1394, Bluetooth, etc.)
- Quality Quality Quality WHQL, HCTs
- Windows Longhorn Devices Just Work
- Finds Any Device
- Discovery Association Can Improve
- Windows PnP-X Technologies PnP Reinvented
- Can offer services to other computers devices
- Good today for PC-to-PC (e.g., File Print
Sharing, SMB) - Opportunities for PC-to-Device
- Windows Network Connected Devices initiative
(NCD)
8Our Investments in Devices
9Advances in Driver Models
10Video -- Windows Driver Foundation
View video at http//www.microsoft.com/whdc/shared
/media/BetterDevices.wvx
11Windows Driver ModelOverview
- Generic Model WDM introduced in 1996 with Win95
OSR 2.1 - Specific driver models Mini-ports for popular
devices classes - WDM Features
- Asynchronous and packet-based IO
- Layering of drivers
- Dynamic loading and unloading of drivers
- Plug and Play
- Power management
- Large device coverage
- Flexible
- Low-level high-performance interfaces
12New Model For DeviceClass Support
Base Model (PnP/PM/IO/Synch)
64-bit Ready Base Model
Device Specific Extension (Packet, Device I/O
Control, CDB processing)
Driver
13Windows Driver Foundation
- WDF is the stepping stone to the ideal driver
model - WDF Contains
- A Model (independent of how it is implemented)
- Framework (implementation of the model)
- Multiple frameworks
- Kernel Mode Framework (a.k.a Windows Driver
Framework) - User Mode Framework
- Driver Verification Tools
- Static Driver Verifier
- PREfast for Drivers
- Device Interface Generation
- Driver Isolation to be made available for kernel
mode framework drivers
14WDF Model
- One conceptual model to learn for all (both
kernel and user-mode) drivers - Model implies
- Object model, object hierarchies, state machines
- Does not refer to DDIs, data structures etc.
- Note that a framework may only implement a subset
of the model - E.g., User mode framework will not implement
support for Interrupts - Supports rich and deep functionality (unlike WDM)
- Intelligent defaulting
- Fine-grained control at well-defined points in
the PnP/PM state machine - Incremental development from simple to complex
drivers - Extensible by device classes without duplication
of functionality by allowing device-class
specific driver extensions - Allows implementation in many languages (C, C,
C) - Allows verification by static tools
- Enables Driver Isolation
- Model will evolve over time to add more
functionality
15Advances in Device Installation
16Consistent Device Installation
- Longhorn will only install driver packages using
Plug and Play mechanisms - Allows for a trusted package
- Windows can verify package integrity
- Able to track dependencies
- Uninstall and rollback more reliable
- Prevent unwanted side affects
- Provided tools and infrastructure works on
Windows 2000 and Windows XP - Allows you to create packages today that will
migrate to Windows Longhorn
17CDI Architecture Flow
Driver Store UI (trust, EULA)
Update Install UI
Finish Install UI
Users context
System context
Add Driver Package to Driver Store
Core Device Install
18Device Install Process
- Driver Package Integrity and Validation
- Happens in the user context
- Ask user if they trust the publisher of the
Driver Package - No UI if the user has chosen to always trust the
publisher - EULA
- Valid Driver Packages only
- Add Driver Package to the driver store
- Happens in the system context
- Core Device Install
- Happens in the system context
- No UI is possible in the system context
- Finish Install UI
- Happens in the user context
- Can ask questions or launch other processes
19Great Windows PC Experience
- Simpler
- No more Client Side verses Server Side
- Same rules apply to class/co-installers all of
the time - More user friendly
- No more CD prompts for the same Driver Package
- No more signature prompts for the same Driver
Package - More flexible
- You dont have to be an administrator to install
drivers - Rules engine for checking the users driver
install policy - Domain administrators can push out drivers to
lots of client machines at once - More secure
- Single security check at strategic point based on
the rules engine
20Advances in Plug and Play
21Device Connectivity Taxonomy
- Goals
- Consistent association/installation experience
- Easy migration from Physically associated to
Logically associated
All Devices
Backplane Devices
Protocol Bus Devices
Physically-Associated Devices
Logically-Associated Devices
22Historically A dual approach
Disparate programming models No single user
experience IP devices limited in adoption Busses
drive device adoption Limitations in protocols
23Moving Fwd A Single, Simple Model
Common Driver Framework Common Programming
Models Common User Experience Common
protocols Extensible Secure
Directly Connected
24Device Connectivity Trends
- Easy Migration
- Wired Busses to Wireless Busses (Wireless USB)
- UPnP v1.0 to Web Services (Function Discovery)
- Bluetooth Profiles to PAN (IP over Bluetooth)
- Connectivity Quality
- Reliable
- Secure
- Extensible
- Consistent (User, Developer)
- Scaleable (simple, complex)
- Heterogeneous Wireless Connectivity
- Fast at Near (UWB)
- Reliable at Far (Zigbee, WiMax, etc)
25Emerging Connectivity
- Build on existing platforms
- Ex USB ? Wireless USB
- Ex SP2 BT ? BT Audio
- Powerful Protocols
- Rich, Transport Independent
- Unleash new device power
- Powerful Radios
- Ultra Wide Band, WiMax
- Zigbee
26Plug And Play
- First created for Windows 95
- Provides an infrastructure for
- Discovery
- Software Installation
- Configuration
- Starting Services and Loading Device Drivers
- Bus Drivers are responsible for dealing with
bus-specific issues - Device class-specific driver stacks and services
responsible for hardware abstraction - Extensible
27PnP-X
- PnP-X integrates network connected devices into
the PnP infrastructure - New Windows services and UI components support
special issues with Device Association - Associated device has a PnP devnode
- Bluetooth pairing experience will be our starting
point
28Windows Applications Drive Devices
- Demo
- Cameron Brodeur
- Program Manager
- Network Connected Devices
- Microsoft Corporation
29Function Discovery
- Function Discovery (FD) is a new API that
addresses todays problems by providing
consistent interfaces for - Resource discovery and metadata retrieval
- Providers expose the underlying resources as
Function Instances (FIs) - Metadata retrieval
- Activation
- Notifications
- Default management
- FD also adds the following new capabilities
- API layering
- Flexible schema for resource categorization
- Resources are not tied to a single category
- Resources can be re-categorized as needed
30Simple Service Discovery Protocol (SSDP)
- Used for discovery of UPnP devices
- Users cant use protocols Some service needs to
be running on the PC to do something when it sees
a device - First version of UPnP places a link in My Network
Places - Vendors want to produce devices that do more than
present HTML UI - Because of lack of PnP integration, you create
built-in UPnP support for - Mouse
- Camera
- Scanner
- Speakers
- Portable Media Player
- Block Storage
- Joystick
- Or any other device supported by Windows
natively - UPnP natively supported as PnP Device (through
enumeration) - Built-in Function Discovery Provider
31WS-Discovery
- WS-Discovery is our preferred discovery protocol
for future devices - Aligned with web services efforts
- Less chatty than SSDP
- Will work well in the enterprise
- Built-in Function Discovery Provider
32Security
- 802.11x wireless devices may need WEP keys
- PIN or other shared secret may be necessary for
association - Want to leverage existing security
infrastructures (ex., SSL) - Integration with Windows Connect Now
- Once securely associated, higher level protocols
will be responsible for session security - Windows Association infrastructure assists in
transfer of secrets needed by higher level
protocols - What you need to do
- Send mail to us at ncdinfo _at_ microsoft.com
- Very cool stuff coming up here stay tuned!
33Additional Platform Advances
- 64-bit Programming (IA64, x64)
- See the DDK 64-bit porting guide
- See whitepaper on data alignment (MSDN)
- WHQL Certify your drivers test on 64-bit
systems - Platform SDK Documentation
- Windows Connect Now (Easy Networking)
- Painless WiFi network set up
- Available now (XPSP2)
- More info fconfigure _at_ microsoft.com
- Send us mail today!
- Build WCN devices today!
- Get the Networked Devices SDK!
34So Many StandardsHow Microsoft Can Help
- Key areas to work on together
- Wireless USB on Ultra Wide Band
- Bluetooth Devices Support in Windows
- Networked devices using UPnP 1.0
- Advanced Networked devices using Web Services
- Windows Hardware Driver Central
- Great resources to build great devices
www.microsoft.com/whdc - Devices Profile for Web Services
- Contribute to the Spec!
- Workshops going on now! www.microsoft.com/webser
vices - This will be in Longhorn
- You can get ahead of the curve now
- Networked Devices
- Send us email today! Ncdinfo _at_ microsoft.com
- Beta Program for you to get early access to bits
- Build great networked devices on Windows!
- Ship great Applications for Networked Devices
- UPnP, Web Services ? great user experiences
35A New Wave of Device Innovation Starting Now
(SP2)Through Longhorn Launchand Beyond
36Call to Action
- Make your drivers 64-bit compatible today
- Build great wireless devices for Windows PCs
today - Build on Windows Wireless Support today
(Bluetooth, WCN, etc) - Windows Driver Foundation (WDF)
- Consistent Device Install (CDI)
- Plug and Play Extensions (PnP-X)
- Function Discovery (FD)
- Develop Windows apps to drive net devices, as if
locally attached - Build Web Services protocols in your advanced
devices today - Get the SDKs, come to the Workshops, use WHQL
- AND TOGETHER, LETS STRIVE FOR
- Great new scenarios, happy customers, bigger
markets