vinita tayal senior program manager. role of device fundamentals (aka devfund) goals of device...

27
Vinita Tayal Senior Program Manager Device Fundamentals Overview Windows Logo Program

Post on 19-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Vinita TayalSenior Program Manager

Device Fundamentals

Overview

Windows Logo Program

Page 2: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Objectives

Role of Device Fundamentals (aka

devfund)

Goals of Device Fundamentals

Relationship of devfund requirements

& tests to these goals

Page 3: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Overview

What are Device Fundamentals

Details of Device Fundamentals

Summary

Page 4: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Structure of Logo Programs for Hardware

Logo

Systems

Functionality

Fundamentals

Devices

Feature/ Functionality

Connectivity

Fundamentals

Device

Driver

Page 5: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 6: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 7: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Overview

What are Device Fundamentals

Details of Device Fundamentals

Summary

Page 8: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 9: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 10: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 11: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 12: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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 !

Page 13: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 14: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 15: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 16: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 17: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 18: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 19: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Overview

What are Device Fundamentals

Details of Device Fundamentals

Summary

Page 20: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 21: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 22: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 23: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Feedback

For feedback on the Windows Logo Program or Windows Logo webcasts contact the Logo Team at: [email protected]

Page 24: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

Appendix

Page 25: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

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

Page 26: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & 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

Page 27: Vinita Tayal Senior Program Manager. Role of Device Fundamentals (aka devfund) Goals of Device Fundamentals Relationship of devfund requirements & tests

© 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.