Building Deployable Device Driver Packages

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Reprint Outstanding Transactions Report © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Co- location Mass Market Managed Hosting ISV Hosting.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Creating Deployable Driver Packages Eugene Lin Principal Program Manager Lead Device & Storage Technologies Group
Feature: Purchase Order Prepayments II © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Announcing Demo Announcing.
Feature: OLE Notes Migration Utility
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Rico Mariani Architect Microsoft Corporation.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
WinHEC /22/2017 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Connect with life Connect with life
A Windows Azure application runs multiple instances of each role A Windows Azure application behaves correctly when.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: Employee Self Service Timecard Entry © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

customer.
Hardware IDs: USB\Vid_vvvv&Pid_pppp&Rev_rrrr USB\Vid_vvvv&Pid_pppp Compatible IDs: USB\Class_cc&SubClass_ss&Prot_pp USB\Class_cc&SubClass_ss.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
Feature: Void Historical/Open Transaction Updates © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Feature: Suggested Item Enhancements – Analysis and Assignment © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
The CLR CoreCLRCoreCLR © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

MIX 09 4/17/2018 4:41 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Reseller Option Kit (ROK)
Возможности Excel 2010, о которых следует знать
Windows Store for Business
Title of Presentation 11/22/2018 3:34 PM
New Developer Tools in Windows Embedded Standard 2011
Baseline: How Are We Doing Now?
Title of Presentation 12/2/2018 3:48 PM
System Center Application Management
1/3/2019 1:21 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Introducing Metro style device apps
Best practices for packaging and distributing device drivers
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Delivering great hardware solutions for Windows
4/27/17, Bell #8 What amount of net pay has been earned this period?
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Math Chapter 2 Lessons 2.1, 2.3, and 2.4
Feature: Multi-user Editing Allowed in RMA Entry
PENSACOLA ENERGY WORK PLAN OCTOBER 10, 2016
Title of Presentation 5/12/ :53 PM
Шитманов Дархан Қаражанұлы Тарих пәнінің
Title of Presentation 5/24/2019 1:26 PM
5/24/2019 6:44 PM 1/8/18 Bell #10 In a world governed by the gods, is there any room for human will? Do human choices make a difference? EXPLAIN © 2007.
日本初公開!? Vista の新機能を実演 とっちゃん わんくま同盟 7/23/2019 9:09 AM
Title of Presentation 7/24/2019 8:53 PM
Advanced app and driver debugging
Presentation transcript:

Building Deployable Device Driver Packages 11/21/2018 12:59 AM Building Deployable Device Driver Packages Eugene Lin Lead Program Manager Microsoft Corporation © 2006 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.

Key Takeaways Conference overall This session 11/21/2018 12:59 AM Key Takeaways Conference overall Be a leader in advancing 64-bit computing Adopt best practices and new tools Let’s partner on new hardware directions This session Create driver packages that can be deployed via any Windows-supported mechanism Deploy multiple driver packages for multifunction devices Understand the implications of distributing device- related applications with driver packages © 2006 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.

Agenda What is “deployable?” Driver packages Multifunction devices Device-related applications

What Is "Deployable?" In short, it means your driver package is compatible with the myriad deployment mechanisms provided by Microsoft and third-parties

Why Is This Hard? This is the hard part! Driver package copied to Driver Store Time passes. The world changes Driver package installed on device This is the hard part!

What Is “Deployable?" End-user IT Pro OEM On-demand install from Windows Update Browse to location Insert CD/DVD when prompted User-initiated Windows Update install Device Manager Update AutoUpdate push install IT Pro WSUS Network share OEM Unattend Package Manager

Scenario Example Anytime Upgrade Driver package is saved Driver package is copied to new OS image pre- boot OS image boots Driver package is installed by PnP

Driver Packages Driver package The INF defines the contents of a driver package All files that are necessary to install all drivers in the package must be referenced in the INF by both CopyFiles and SourceDisksFiles The INF is the only way that Windows knows which files are important to the driver Foo.inf Foo.sys Foo.dll Bar.dll

These files will be lost! Driver Packages Driver package These files will be lost! Foo.inf Configuration file Foo.sys Localized UI Foo.dll Application files Bar.dll Incorrect

Driver Packages Driver package Correct Foo.inf Configuration file Foo.sys Localized UI Foo.dll Application files Bar.dll Correct

Driver Packages Driver package Incorrect Missing files Foo.inf Foo.sys French Resources Foo.dll Bar.dll Incorrect

Driver Packages Driver Store How Windows will use the INF Programmatic Foo.inf How Windows will use the INF Programmatic SetupCopyOemInf DiInstallDriver DIFx tools User Found New Hardware Wizard Windows Update on- demand Windows Update manual AutoUpdate Foo.sys Foo.dll Bar.dll Configuration file Localized UI Application files Driver Store

Driver Packages Driver Store Foo.inf Windows uses the INF to build a list of files in the package Foo.sys Foo.dll Bar.dll Configuration file Localized UI Application files Driver Store

Driver Packages Foo.inf Foo.sys Foo.dll Bar.dll Windows uses the INF to build a list of files in the package Configuration file Localized UI Application files Driver Store

Driver Packages Foo.inf Foo.sys Foo.dll Bar.dll Foo.inf Foo.sys Foo.dll Bar.dll Windows uses the INF to build a list of files in the package Windows copies those files into the Driver Store Media goes away !!! Configuration file Localized UI Application files Foo.inf Foo.sys Foo.dll Bar.dll Driver Store

Driver Packages Driver Store Your device Your device Configuration file Localized UI Application files Foo.inf Foo.sys Foo.dll Bar.dll Driver Store Your device Your device Foo.inf Foo.sys Foo.dll Bar.dll Foo.inf Foo.sys Foo.dll Bar.dll

Driver Packages Remember List all your files in your INF Foo.inf Foo.sys Foo.dll Bar.dll Configuration file Localized UI Application files Correct Remember List all your files in your INF Don’t assume source media will be present during installation Foo.inf Foo.sys Foo.dll Bar.dll Configuration file Localized UI Application files Incorrect Driver Store

Multifunction Devices Definition A device that enumerates as multiple devnodes Problem Need to install multiple drivers without prompting users multiple times Solution CopyInf Driver package Driver package Driver package

Multifunction Devices CopyInf directive Links multiple INFs together, so when one gets copied into the Driver Store, the other gets copied as well Parsed by Windows when a driver package is copied to the Driver Store If a driver package referenced in a CopyINF directive is already in the Driver Store, then Windows will not attempt to re-copy the package … [DDInstall] CopyINF=filename1.inf[,filename2.inf]...

Multifunction Devices CopyInf directive Example Myprinter.inf and myscanner.inf will be copied into the Driver Store when this driver package is copied into the Driver Store … [MyDDInstall] CopyInf = myprinter.inf, myscanner.inf

Multifunction Devices Parent device uses your driver Parent.inf CopyINF = child1.inf, child2.inf Parent device Child1.inf Child2.inf Child device #1 Child device #2

Multifunction Devices Parent device uses inbox driver Usb.inf (inbox) Since you don’t know which child will enumerate first, put the matching CopyINF entries in each child driver package Parent device CopyINF = child2.inf CopyINF = child1.inf Child1.inf Child2.inf Child device #1 Child device #2

Multifunction Devices Windows Update DevicePath Found New Hardware Wizard Child1.inf Child2.inf Usb.inf (inbox) CopyINF=Child1.inf CopyINF=Child2.inf Usbccgp.sys File1 File4 Parent device Parent device File2 File5 File3 File6 Driver Store File1 Usb.inf (inbox) Usb.inf (inbox) Usbccgp.sys Usbccgp.sys Child device #1 Child device #1 File1 Child1.inf Child1.inf Child2.inf Child2.inf File5 Child device #2 Child device #2 File5 CopyINF=Child2.inf CopyINF=

Device Applications How do I install an application with my driver package? Answer depends on target customer Home users: Maximize ease-of-use IT Pros/OEMs: Maximize flexibility

Device Applications Target: Home user retail install Use a finish-install action to trigger an app install when the device is installed Whitepaper on how to do this at: http://www.microsoft.com/whdc/driver/inst all/app_drv.mspx

Device Applications Driver package Foo.inf Foo.sys Foo.dll Bar.dll Coinst1.dll Setup.exe App.cab Include all files necessary for the app installer inside the driver package App too big? Include an installer stub only that knows how to acquire the app from media or the web

Device Applications Windows Vista system Driver Store %programfiles%\mycompany myappsetup myapp Setup.exe Setup.exe Appfile1 App.cab Appfile2 Appfile3 Appfile4 Appfile5 Driver Store I have a Finish Install Action! Foo.inf Foo.inf %windir%\system32\drivers Coinst1.dll Coinst1.dll Foo.sys Foo.sys Setup.exe Setup.exe Foo.dll Foo.dll Coinst1.dll Coinst1.dll Bar.dll Bar.dll App.cab App.cab OK! I’ll elevate and call you back Foo.dll Foo.sys Bar.dll

Device Applications Target: IT Pro/OEM Separate your driver package and your application installer Allow the customer to decide how best to deploy the combination

Call To Action Make your driver packages deployable by including everything in the INF For multifunction devices, use CopyInf to link multiple driver packages together For home users, integrate your application setup into your driver package For IT Pro and OEM users, keep your application setup separate from your driver package

Additional Resources Web Resources Specs Whitepapers Related Sessions CopyInf directive: http://msdn2.microsoft.com/en-us/library/ms794507.aspx Writing a co-installer: http://msdn2.microsoft.com/en-us/library/ms790151.aspx Whitepapers How to Install Windows Drivers with Software Applications: http://www.microsoft.com/whdc/driver/install/app_drv.mspx Related Sessions DVR-T394 Extending Device Driver Installation with Co-Installers DVR-T395 Deploying Device Drivers for Windows Vista DVR-T396 Common Device Driver Installation Errors DVR-T502 Debugging Device Installation on Windows Vista

© 2007 Microsoft Corporation. All rights reserved © 2007 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.