vinita tayal senior program manager. role of device fundamentals (aka devfund) goals of device...
Post on 19-Dec-2015
217 views
TRANSCRIPT
Vinita TayalSenior Program Manager
Device Fundamentals
Overview
Windows Logo Program
Objectives
Role of Device Fundamentals (aka
devfund)
Goals of Device Fundamentals
Relationship of devfund requirements
& tests to these goals
Overview
What are Device Fundamentals
Details of Device Fundamentals
Summary
Structure of Logo Programs for Hardware
Logo
Systems
Functionality
Fundamentals
Devices
Feature/ Functionality
Connectivity
Fundamentals
Device
Driver
Win
dow
s To
uch
W
ind
ow
s
Med
ia C
ente
r
Devic
e
Sta
ge
Device Logo Building Blocks
Device Fundamentals
Additional Qualifications AQ Enabled
Dynam
ic
Part
itio
nin
g
Pow
er
Man
ag
em
ent
Hig
h A
vaila
bili
ty
Fault
To
lera
nce
ClientServer
Device Connectivity
Signature
Core functional requirements Logo
e.g., 1394, PCI, Bluetooth, USB …
Audio
Mod
em
Pri
nte
rs
Netw
ork
Bus
Dis
pla
y
Sto
rage
Imagin
g
Gra
phic
sDevice-specific Functionality
…
Tenets of Device Fundamentals
Baseline quality 25 requirements, 17 tests
•Device or driver will function properly with Windows OS
Compatibility
•The device or driver will function reliably in common user scenarios
Reliability
•The device or driver will perform reasonably well, regardless of its device class
Performance
•The device or driver will perform securely without destabilizing the system or other devices
Security
•The device or driver maximizes its own availability as well as that of the system to the end user
Availability
Overview
What are Device Fundamentals
Details of Device Fundamentals
Summary
Compatibility
Requirements
• INF format
• Signability
• Unique ID
• x64 support
• Error free installation / un-installation
Key Tests
• Run INF for Single INF (ChkINF)
• Reinstall with IO
• WDF logo tests
Good to Know - ChkINF
• Common tool in WDK / WLK
• Checks for common syntax errors
• Rerun after INF changes
• Updated for WDF specific sections
Purpose : Device or driver will function properly with Windows OS
NEW
WDF Logo Tests
Targeted for Windows Driver Framework (WDF) drivers
User Mode - UMDF Kernel Mode - KMDF
Five requirements – DEVFUND-0036 to DEVFUND-0040Four tests
ChkINFWDF Logo test – FinalVerify WDF Co-installer version for UMDFVerify WDF co-installer version for KMDF
Address compatibility & reliability tenets
Reliability
Requirements
• Reliably handle user mode I/O requests
• No resource leakages
• I/O cancellation / completion
• Error free installation / un-installation
Key Tests
• Stress with IO
• Disable Enable
• Sleep Stress
• Common Scenario
• IO Cancellation
• Direct IO
• DPE
• Plug ‘n Play Driver
(PnPD)
• Driver Path Exerciser
(DPE)
Good to Know
• Driver Verifier
• Kernel Debugger is best friend for debugging
• Hang during DPE a real driver issue
Purpose : The device or driver will function reliably in common user scenarios
NEW
Stress with IO Tests
Check device under test is
functional
Perform simple IO
Disable device under test
Enable device under test
Hibernate, standby, or
suspend system
Use RTC wake event to wake
system
Sleep stress, disable enable, common scenario
Driver Verifier = ON
Kernel Debugger = Your Friend
IO Cancellation Tests
For proper handling of IO cancellation IRPsWith Driver Verifier ONWith and without real IO data
User scenarioUser attempts to cancel a request to an application, and the application hangs
For Windows 7 and later OSIntroduced for “Storage” class devicesExtended to “Network” class devices
Good to knowCrash is a common failure modeKernel Debugger – very useful !
Performance
Requirements
• Boot drivers are self signed
• Drivers do not leak resources
• Device functional without restart
• Error free installation / un-installation
• Device supports sleep states
• Performance of devices/drivers under concurrent scenarios
Key Tests
• CHAOS
• Embed sign
• PnPD test
• Device Path Exerciser
• Stress tests
Good to Know
• Concurrent tests are designed to be highly destructive on drivers
• DPE tests for robustness, not functionality.
• PnPD tests for proper handling of PnP IRPs
• Kernel Debugger
Purpose : The device or driver will perform reasonably well, regardless of its device class
NEW
CHAOS Concurrent Hardware and OS test
Tests device/driver capability to support S3 & S4 sleep statesAttempts to see how a driver handles
Power transitionsPlug and Play operationsIO operations
Concurrently!
Power
• Runs Pwrtest.exe to exercise ACPI
PnP
• Runs Plug and Play Driver Test to exercise PnP
IO
• Runs Device Path Exerciser to exercise IO
Highly destructive testTries to crash a driverKernel Debugger
Device Path Exerciser
What
• Test of driver robustness, not functionality
• Test for improper driver design, OR
• Poor implementations leading to system vulnerability to malicious attacks or crashes
How
• Sending thousands of control requests to driver and verifying that
• Calls complete successfully
• Does not cause system crash
• Does not cause memory corruption or leaks
• Handles invalid data
Good to Know
• Driver Verifier enabled
• Four logs – Dc2.log, Diags.log, Crashn.log, Crash.log
• Test hang == real driver issue
• Kernel Debugger
Security / Stability
Requirements
• Unique ID
• Error free installation / un-installation
• Impact on system components
• Impact on other devices in the system
Key Tests• Reinstall with IO
• Device Install Check
• For Other Device
• System File
Good to Know
• Drivers must be test signed & test cert trusted on all clients
• If driver package uses UI & UI data from initial install is not saved FAIL
• Driver dependencies can cause test failures
Purpose : The device or driver will perform securely without destabilizing the system or other devices
ALL NEW
Reinstall TestsCollection of three tests, based on same source
Test name Purpose
Reinstall with IO Tests stability of device under test (DUT)
Device Install check for System file consistency
Tests impact of DUT on system components
Device Install check for Other Device stability
Tests impact of DUT on other devices in the system
Looks for install issues missed in typical installDriver Verifier Enabled
Special DV settings for Windows 7 and later
Debugging tipsKernel DebuggerSetupapi.log , Cbs.log
Availability
Requirements
• Device driver support query power and set power requests (DEVFUND-0042)
• Device drivers operate correctly on servers that have processors configured for multiple processor groups (DEVFUND-0035)
Key Tests• Dynamic Partitioning
• DP Hot Add CPU
• DP Hot Replace CPU
• DP Hot Add RAM
• DP Hot Replace RAM
• Multiple Processor Group
Good to Know
• Must be tested with Datacenter Edition or IA64
• Manually enable multiple processor groups
• An actual partitionable system is NOT required
Purpose : The device / driver maximizes its own availability as well as that of the system to the end
user
Overview
What are Device Fundamentals
Details of Device Fundamentals
Summary
Summary
Device Fundamentals Baseline quality
Kernel Debugger Your best friend
Basic tests Also available in WDK
Driver Verifier Use during driver development
Include Device Fundamental tests – early and often in development
process
References
Overview of Logo Program
What’s New in WLK 1.5 session
Windows Logo Program webcasts
http://www.microsoft.com/whdc/winlogo/logocast.
mspx
Device Fundamentals Tests
Kernel Debugger Tool
Call To Action
Review Device Fundamentals requirements
Install latest WLK version
Review webcasts
Kernel Debugger Tool
Windows Logo Program Device Fundamentals Tests
Install kernel debugger
Investigate any Device Fundamentals test failures
Feedback
For feedback on the Windows Logo Program or Windows Logo webcasts contact the Logo Team at: [email protected]
Appendix
Test to Requirement Mapping
Test name Requirements
Common Scenario Stress with IO DEVFUND-0016
Sleep Stress with IO DEVFUND-0016, DEVFUND-0043
Disable Enable with IO DEVFUND-0016
Device Path Exerciser (DPE) DEVFUND-0004, DEVFUND-0016
Run INF against a Single INF DEVFUND-0001, DEVFUND-0016, DEVFUND-0040
Plug and Play Driver Test (PnPD) DEVFUND-0016
Embedded Signature Verification DEVFUND-0029
Reinstall with IO DEVFUND-0030
CHAOS – Concurrent Hardware & OS DEVFUND-0043
Device Install Check (2 tests) DEVFUND-0005, DEVFUND-0006
IO Cancellation (2 tests) DVEFUND-0013
WDF DEVFUND-0037, DEVFUND-0038
Dynamic Partitioning DEVFUND-0042
Multiple Processor Group DEVFUND-0035
Mapping between requirements and tests
Test Applicability Matrix
Device Fundamentals TestsOnly if
INF provided
Server 2003
XP VistaWindow
s 7
Server 2008 R2
Common Scenario Stress with IO Yes Yes Yes Yes YesSleep Stress With IO Yes Yes Yes Yes YesDisable Enable With IO Yes Yes Yes Yes YesDevice Path Exerciser Yes Yes Yes Yes Yes YesRun INFTest against a single INF Yes Yes Yes Yes Yes YesPlug and Play Driver Test Yes Yes Yes Yes Yes YesEmbedded Signature Verification Yes Yes YesReinstall With IO Yes Yes Yes
CHAOS – Concurrent Hardware & OS Yes Yes Yes
Device Install Checks (2 tests) Yes YesIO Cancellation Tests (2 tests) Yes YesWDF Tester Yes Yes YesDynamic Partitioning Yes YesMultiple Processor Group Yes
Mapping of Tests to Various Operating Systems
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.