radical performance improvement Driver Store Factory Unattended Setup Windows Update Software...

Post on 12-Jan-2016

215 views 0 download

Transcript of radical performance improvement Driver Store Factory Unattended Setup Windows Update Software...

www.buildwindows.com

Delivering Great Device Installation Experiences

Cameron BrodeurProgram ManagerMicrosoft Corporation

888

Adam LenartSoftware Design EngineerMicrosoft Corporation

www.buildwindows.com

Agenda

• What makes a device installation great?• Device Installation & Device Configuration• How to take advantage of Device Configuration• Installing apps with a device• Demo: Diagnosing device installation problems• Q&A

You’ll leave with examples of how to• Improve the performance of device installation • Diagnose common installation problems

www.buildwindows.com

Related sessions

• Designing great devices and drivers (HW-322T)• Building metro style apps that connect to

specialized devices (HW-747T)• Best practices for packaging and distributing device

drivers (HW-903T)• Simplifying wireless and network device discovery

and pairing (HW-286T)

www.buildwindows.com

What Makes a Device Installation Great?

• Great device experiences are designed

• Device setup is fast

• Device apps are Metro style apps

www.buildwindows.com

Relative Device Installation Performance

Windows 95

Windows XP

Windows Vista

Windows 7

Windows 8

Configu-ration

Inst

all

tim

e(l

ow

er

is b

ett

er)

radicalperformanceimprovement

www.buildwindows.com

Driver Store

Driver Store

Factory Unattended Setup

Windows Update

Software Installers SetupCopyOEMInf

Offline Image Creation

OS Setup & Upgrade

Windows “Inbox”

www.buildwindows.com

Device Installation

1

32

Driver Store

Class/Co-installers

www.buildwindows.com

Device Configuration

Driver Store

1

32

www.buildwindows.com

Device Configuration

Input

Boot Devices

Storage

Other select devices

www.buildwindows.com

• Windows Certification tests

• Passing the recommended certification tests ensures configurability

• Windows 8 Certification Requirements - Preview

Making your device configurable

www.buildwindows.com

Things to watch out for

• Using a Co-Installer or custom Class Installer

• Referencing INF directives not related to installation

• Deleting or modifying registry entries, files or services

• Only specify HKR when using AddReg directive• Only copy files to

• %WINDIR%\System32• %WINDIR%\System32\Drivers

• Specify PnpLockdown=1 in the [Version] section

www.buildwindows.com

…and a couple more

• Only install driver services• Target OS version decoration in an INF file cannot

contain a ProductType flag or SuiteMask flag

Configurable Driver Package INF[Version]...DriverVer = 09/16/2011,1.0.0.3 ; Update date/version with every changeCatalogFile = driver.cat ; Always sign driver package INF and filesPnpLockdown = 1 ; Protect driver files from tampering

[Manufacturer]%Mfg.Desc% = Drivers,NTx86 ; Explicitly target platform/architecture

[Drivers.NTx86]%Device.Desc% = Device_Install,USB\VID_ABCD&PID_1234

[Device_Install.NT]...

[Device_Install.NT.Services]...

Configurable Driver Package INF - Files[Device_Install.NT]CopyFiles = Driver_CopyFiles...

[Driver_CopyFiles]driver.sys ; Keep it simple, no special copying rules

[SourceDisksNames]1 = %Disk.Desc%

[SourceDisksFiles]driver.sys = 1

[DestinationDirs]DefaultDestDir = 12 ; %WINDIR%\System32\Drivers

Configurable Driver Package INF - Settings[Device_Install.NT]...AddReg = Driver_AddReg

[Driver_AddReg]HKR,,Setting,%REG_SZ%,"Value" ; Only specify HKR-based driver software values ...

[Device_Install.NT.Hw]AddReg = Device_AddReg...

[Device_AddReg]HKR,,Bells,%REG_DWORD%,1 ; Only specify HKR-based device hardware valuesHKR,,Whistles,%REG_DWORD%,256...

Configurable Driver Package INF - Services[Device_Install.NT.Services]AddService = driver,%SPSVCINST_ASSOCSERVICE%,Service_Install ; Always associate one service

[Service_Install]ServiceType = %SERVICE_KERNEL_DRIVER% ; Only add kernel driver servicesStartType = %SERVICE_SYSTEM_START%ErrorControl = %SERVICE_ERROR_NORMAL%ServiceBinary = %12%\driver.sysDisplayName = %Driver.Desc%AddReg = Service_AddReg

[Service_AddReg]HKR,,Mode,%REG_DWORD%,2 ; Only specify HKR-based service values ...

Configurable Driver Package INF - WDF[Device_Install.NT.Wdf]KmdfService = driver,KmdfService_Install ; KMDF-based driverUmdfService = UmdfDriver,UmdfService_Install ; UMDF-based driverUmdfServiceOrder = UmdfDriver

[KmdfService_Install]KmdfLibraryVersion = 1.0

[UmdfService_Install]UmdfLibraryVersion = 1.9.0DriverCLSID = {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}ServiceBinary = %12%\UMDF\UmdfDriver.dll

[Device_Install.NT.Services]AddService = WUDFRd,0x000001fa,WUDFRD_Install ; WUDFRd service for UMDF driver...

www.buildwindows.com

Delivering the App Experience

• The best device experiences use a Metro style app• Automatic download and setup• Built-in app experiences for common device classes• Printers, webcam, mobile broadband SIM

• Support for custom apps• WPD, Storage, Networking• Custom drivers with custom interfaces

www.buildwindows.com

Metro style appfor Devices

Delivering the App Experience

Driver

Driver Package

Automatic download and setup of Metro

style apps for devices

Faster download of simpler driver package

www.buildwindows.com

Installing Desktop Software With a Device• Recommend use of RequestAdditionalSoftware INF

directive

• Allows a device to indicate that software may be available

• Driver package download is fast

• Provides you with flexibility

• Software can be updated at anytime without the need to update the driver package

• Decouples the driver from the software

• User decides if they need a Desktop app experience

Request Additional Software

Simple INF directive: RequestAdditionalSoftware

[ControlFlags]RequestAdditionalSoftware=*

applies to all devices installed by the driver package, or …

[ControlFlags]RequestAdditionalSoftware=device-identification-string[,device-identification-string] ...

only to specific devices.

Available on Windows 7 and later.

www.buildwindows.com

Diagnosing device problems

demo

Q&A

www.buildwindows.com

Further reading and documentation

Device Configuration and Windows Certification• Windows 8 Certification Requirements – Preview• Device and Driver Installation (MSDN)

Apps for hardware• Metro style Device App for Specialized Devices - Design Guide• The Device Software Lifecycle – Deployment, Acquisition, Uninstall and Update P

rocess• Metro style Device App for Specialized Devices Custom Driver Access Design Gu

ide• Metro style Device App for Specialized Devices Custom Driver Access Developm

ent Guide

• RequestAdditionalSoftware INF [ControlFlags] directive

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

Backup Slides

www.buildwindows.com

Driver Ranking

00 FF 0002

Device

0000-0FFF:1000-1FFF:2000-2FFF:3000-3FFF:

Hardware HardwareHardware CompatibleCompatible HardwareCompatible Compatible

Driver

Signer Score

Feature Score