dmi: driver install frameworks tools and strategies patty esack program manager device management...
Post on 23-Dec-2015
222 Views
Preview:
TRANSCRIPT
DMI:Driver Install Frameworks Tools And Strategies
Patty EsackProgram ManagerDevice Management and Installation (DMI) TeamMicrosoft Corporation
Gernot SeidlerTechnical LeadWindows Engineering gseidler @ egenera.comEgenera, Inc.
Session GoalsSession Goals
Attendees should leave this session with the following
Microsoft’s goals for the Driver Install Frameworks (DIFx) tools
Benefits of using the tools todayCosts and time to market
Enterprise deployment
Benefits of using the tools moving forwardForward compatibility
Migration
New features and functionality
Feature set of the current DIFx toolsHow to use the DIFx tools
How to give feedback
Session OutlineSession Outline
Driver Install Frameworks (DIFx) goalsSimplify Development
Improve the User Experience
Vendor Differentiation
Introduction to the DIFx ToolsDriver Package Installer (DPInst)
Driver Install Frameworks for Applications (DIFxApp)
Driver Install Frameworks API (DIFxAPI)
Driver Install Frameworks GoalsDriver Install Frameworks GoalsSimplify DevelopmentSimplify Development
Develop to the frameworksThe Operating System (OS) will change, but the abstraction layer will not
Packages are less likely to have compatibility problems moving forward
Lower development costs
Driver Package Installers are simple to developCan create a driver package without writing any code
Support for Windows 2000, Windows XP, Windows Server 2003, and Windows codenamed “Longhorn”
Support for 64-bit and localized installers
Driver Install Frameworks GoalsDriver Install Frameworks GoalsImprove The User ExperienceImprove The User Experience
Automatically creates and stores installation files in the “Driver Store”
Addresses the “Lost CD” scenario
Fewer support calls
Over time creates a standard paradigm for the device install user experience
Users are more likely to know what to do
Supports easy “value add”
TipTip
Use the DIFxTools and take advantage of the down-level driver store
Driver Install Frameworks Goals Driver Install Frameworks Goals Vendor DifferentiationVendor Differentiation
DIFx.API made available in the 2.0 release
Vendors can still launch their own co-installers and finish install pages
The tools will continue to evolve based on developer, user, and OEM feedback
New tools and features to be added on a cyclical basis
Today’s DIFx ToolsToday’s DIFx Tools
Driver Package Installer (DPInst)Takes an INF-based driver package and installs it on any matching devices
Stages the driver package for later device install
Driver Install Frameworks for Applications (DIFxApp)
Provides programmatic access to the Driver Install Frameworks tool engineIdeal for non-device drivers
E.g., File system filters for antivirus software
Driver Install Frameworks API (DIFxAPI)Provides programmatic access to the Driver Install Frameworks tool engine
What Tools Should I Use?What Tools Should I Use?
Does your driver INF install all the software you need?
If yes > Use DPInst
If no > Does your application installer use MSI?
If yes > Use DIfxApp
If no > Use DIFxAPI
Driver Package Installer Driver Package Installer (DPInst)(DPInst)
DPinst is an executable that simplifies software-first installations of driver packages and simplifies your development process
Easy to DeployInstaller is ready to use
No need to write code
No need to create a custom install program
Super-simple software first install with built-in support for
Verifying package integrity
Ability to require EULA acceptance
Software-first installSoftware-first install
INF + DriverINF + Driver
DIFxAPIDIFxAPI
DPInst.exeDPInst.exe
SetupAPISetupAPI
PCPC
DPInstDPInst
3 Steps to a customer ready installation1. Place DPInst.exe in temp dir
2. Place INF and driver in temp dir
3. Compress directory into self-extracting EXE that launches DPInst
Publish to your customers!
DIFxAppDIFxAppDriver Install frameworks for applicationsDriver Install frameworks for applications
Windows Installer custom actions that install drivers during application install
FeaturesSupport for install, uninstall, repair, rollback, and upgrade of drivers
Tracks and maintains application-driver-service associations and provides reference counting on drivers and services
ApplicationApplication
DriverDriver
INFINF
PCPC
SetupAPISetupAPI
Windows Windows InstallerInstaller
DIFXAppDIFXApp
DIFxAPIDIFxAPI
DIFxAppDIFxAppDriver Install frameworks for applicationsDriver Install frameworks for applications
How to incorporate it into your setup programAvailable as a Windows Installer merge moduleInstallShield and WiseWindows Installer XML (WIX)
““We’ve supported DifX in previous InstallShield releases, and We’ve supported DifX in previous InstallShield releases, and we’re looking forward to support DifX 2.0 this year following its we’re looking forward to support DifX 2.0 this year following its general availability. Our customers count on InstallShield to general availability. Our customers count on InstallShield to stay current with the latest Microsoft technologies, and they’ve stay current with the latest Microsoft technologies, and they’ve rewarded us by making us the software industry’s first choice rewarded us by making us the software industry’s first choice for strong, reliable installations.” for strong, reliable installations.”
Bob CorriganBob CorriganInstallShield Product ManagerInstallShield Product Manager
MacrovisionMacrovision
TipTip
If DIFxApp and DPInst are not flexible enough for you, create your own installer using DIFxAPI
DIFx Usage ScenarioDIFx Usage Scenario
Egenera BladeFrame Overview Egenera BladeFrame Overview 24 Processing Blades
Server-class computers with 2 or 4 high-speed Intel or AMD 32 / 64 bit processors, 6 - 32 GB of memoryContains no storage or networking hardwareContains no keyboard or mouse ports and no display adapter
2 Control Blades Server-class computers with a full complement of hardwareHouses the physical connections to SAN storage and network resources Houses the management softwareProvides high availability and failover management
Back Plane ConnectionsProvides redundant high-speed fabric connections between all Processing and Control BladesProvides out-of-band management connections
ApplicationFiles
ApplicationFiles
ApplicationFiles
Fibre Channel SAN
Fibre Channel SAN
cBlade
cBlade
pBlade/pServer
Egenera Windows pServer Driver StackEgenera Windows pServer Driver StackProvided by:
Microsoft
PhysicalLayer
Egenera
COM Ports
NDIS
Interconnect PCI Cards
vSCSI Port Driver
ACPI Driver
PCI Bus Driver
Interconnect Driver
MPIO Drivers
Out-of-Band Management Connection
Virtual Bus Driver
vCOM Driver
DSM
IPMI Driver
vNIC Miniport Driver
vKVM Driver
vVGADriver
GDI
DisplayDriver
HID
vKBD / vMouse
Egenera provides 11 drivers to support its virtual architecture.
8 drivers are boot drivers and cannot fail!
Upgrade Application RequirementsUpgrade Application Requirements
Complete Driver Set UpgradesOne upgrade application that contains the complete driver set so that the user can apply any upgrade to any release family.
Major Version UpgradesUpgrade all 11 drivers
May install new drivers to provide new functionality
Minor Version Updates / PatchesUpdate one or more drivers
Updates are cumulative - Installer applies all required updates and patches
Upgrade Application RequirementsUpgrade Application Requirements
Standard ToolsetCommand line and GUI appearance must comply with Microsoft Windows standards.
Installer must integrate with Microsoft deployment and systems management tools.
Enforce Driver Set Consistency Any upgrade that runs to completion must result in a set of operationally consistent drivers.
Prevent user from applying unsupported upgrades.
Upgrade Application RequirementsUpgrade Application Requirements
Support for Rollback and Downgrade Users must be able to return to an earlier version.
Users must be able to roll back to the previous version.
Atomic Upgrade and Rollback Upgrade and rollback must either complete successfully or leave the system in its original state.
If the upgrade / rollback is cancelled by the user for any reason, all drivers must be returned to the versions present before the upgrade / rollback was initiated.
Upgrade Application RequirementsUpgrade Application Requirements
Support Multiple Configurations Provide 32-bit and 64-bit upgrades.
Provide 32-bit application updates under 64-bit Windows
Provide 32-bit to 64-bit migration for applications under 64-bit Windows
Provide customizationE.g. Upgrade without MPIO driver updates.
User ExperienceProvide as much automation as possible
Minimize reboots and system downtime
Provide “silent install” option that requires no user interaction
Upgrade ChallengeUpgrade Challenge
Manage complexity of upgrading many driversDrivers may have interdependencies.
Failure of boot driver updates may render system not bootable.
Upgrades must be done remotelyNo physical keyboard, mouse and display
Maintain High AvailabilitypServer must be operational after upgrade / rollback completes.
pServer must always be in a known state.
Minimize installer authoring effortCreating upgrades and patches should not be a major development effort.
DIFxApp ImplementationDIFxApp Implementation
DIFxApp – The Answer to the Upgrade Challenge Egenera’s pServer upgrade application is based on the standard Windows Installer technology.
The installer MSI is developed using the Microsoft WiX and DIFxApp tools.
The Wix source file from which the MSI is build is a XML script. This allows for highly automated upgrade builds.
All Egenera drivers are installed / updated with DIFx.
The installer also updates the Microsoft MPIO drivers, which are not DIFx compatible.
No extra work had to be done to provide for upgrade and rollback functionality of the DIFx installed drivers.
DIFxApp ImplementationDIFxApp Implementation
DIFxApp – The Answer to the Upgrade Challenge Additional MSI custom actions had to be developed for
Driver consistency and compatibility checks
MPIO upgrade / rollback
System configuration checks
Application configurations
The current MSI is based on DIFx 1.1Upgrade meets all the requirements, except the ability for quiet installs due to SetupAPI limitations.
DIFx 2.0 addresses the issue and allows quiet installs in legacy mode.
All drivers are signed with a Microsoft WHQL signature or Authenticode signature.
DIFxApp ImplementationDIFxApp Implementation
Authoring a Windows Installer Package using WiX and DIFxApp
Create Driver PackageAdd DIFx identifiers to INF
Sign shippable driver package with WHQL or Authenticode signature
Obtain test signatures from WHQL for testing
Create the WiX XML source file that describes the application and associated driver packages
The MSI custom actions for installing driver packages are linked into the MSI automatically.
Plan how to deploy patches and upgrades!
Build the MSIAuthenticode sign the MSI before shipping!
Call To ActionCall To Action
Come see a live demo of the Egenera BladeFrame
A BladeFrame is presented at the Hardware Innovation Showcase
Contact Egenera for more informationwww.egenera.com
DIFxAPIDIFxAPIDriver Install Frameworks LibraryDriver Install Frameworks Library
DIFxAPI exports the following functions
DriverPackagePreinstall()
DriverPackageInstall()
DriverPackageUninstall()
DriverPackageGetPath()
FeaturesSupport for install, uninstall, repair, and rollback of drivers
Tracks and maintains application-driver-service associations and provides reference counting on drivers and services
Device Install AppDevice Install App
PCPC
SetupAPISetupAPI
DIFxAPIDIFxAPI
INFINF DriverDriver
TipTip
Want to install a multifunction Device with DIFxAPI?Populate the driver store with DriverPackagePreinstall()
Then call DriverPackageInstall()
Future Tools And FeaturesFuture Tools And FeaturesDriver Install Frameworks Co-Installer (DIFxCo)Driver Install Frameworks Co-Installer (DIFxCo)
Enables a rich “Hardware First” user experience
Users can plug in a device and have all the associated software install automatically
Partners can package a driver with an application setup package for hardware-first installation
Future Tools And FeaturesFuture Tools And FeaturesDriver Package Validation ToolsDriver Package Validation Tools
Driver Package Verifier (DPVer)Ensures that your INF and Driver Package are valid
Provide a method for checking driver packages and INF files before they are added to the Store
Driver Install Verifier (DIVer)Watches a co-installer for invalid actions
Provide a command line front end as a tool so that a developer can determine what invalid actions are taking place in their co-installer
SummarySummary
The Driver Install Frameworks (DIFx) is the new driver package model for driver development
It addresses key Independent Hardware Vendor (IHV)/Original Equipment Manufacturer (OEM) concerns
Fast time to market, technical support costs, learning curve, etc.
Backward compatible up to Windows 2000
It intends to reduce customer pain points
DIFx will continue to evolve to provide a complete driver package development experience
Aims to reduce OS crashes and fragility due to poorly written driver install packages
Reduces Support and Development costs
Improves the user experience
Allows Vendor differentiation
Call To ActionCall To Action
Use the Driver Install Frameworks toolshttp://www.microsoft.com/whdc/hwdev/driver/difxtools.mspx
Provide us feedback…On the Driver Install Frameworks tools
On how we can help you build a single package that supports both hardware-first and software-first installs
E-Mail us at: devinstf @ microsoft.com
Community ResourcesCommunity Resources
Windows Hardware and Driver Central (WHDC)www.microsoft.com/whdc/default.mspx
Technical Communitieswww.microsoft.com/communities/products/default.mspx
Non-Microsoft Community Siteswww.microsoft.com/communities/related/default.mspx
Microsoft Public Newsgroupswww.microsoft.com/communities/newsgroups
Technical Chats and Webcastswww.microsoft.com/communities/chats/default.mspx
www.microsoft.com/webcasts
Microsoft Blogswww.microsoft.com/communities/blogs
Additional ResourcesAdditional Resources
Web ResourcesWriting a Device Installation ApplicationMSDN search keywords: “Writing a Device Installation Application”
Driver Install Frameworks toolshttp://www.microsoft.com/whdc/hwdev/driver/difxtools.mspx
Windows Installer SDK http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Windows Hardware and Driver Centralhttp://www.microsoft.com/whdc
Using Authenticode to Digitally Sign Driver Packageshttp://download.microsoft.com/download/3/4/f/34fa7f0d-92d6-4265-80b2-1541789699a9/Authenticode.exe
Other ResourcesToaster Installation Package Sample In the Windows XP and Windows Server 2003 DDK at src\general\toaster\toastpkg
Newsgroupsmicrosoft.public.development.device.drivers
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
top related