Upload
adelia-cain
View
214
Download
0
Embed Size (px)
Citation preview
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
Related sessions
• Device and Driver Installation • Windows Hardware Dev Center• Windows Dev Center
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