36
DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot Seidler Technical Lead Windows Engineering gseidler @ egenera.com Egenera, Inc.

DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

Embed Size (px)

Citation preview

Page 1: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

DMI:Driver Install Frameworks Tools And Strategies

Patty EsackProgram ManagerDevice Management and Installation (DMI) TeamMicrosoft Corporation

Gernot SeidlerTechnical LeadWindows Engineering gseidler @ egenera.comEgenera, Inc.

Page 2: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 3: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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)

Page 4: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 5: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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”

Page 6: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

TipTip

Use the DIFxTools and take advantage of the down-level driver store

Page 7: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 8: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 9: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 10: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 11: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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!

Page 12: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 13: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 14: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

TipTip

If DIFxApp and DPInst are not flexible enough for you, create your own installer using DIFxAPI

Page 15: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

DIFx Usage ScenarioDIFx Usage Scenario

Page 16: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 17: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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!

Page 18: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 19: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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.

Page 20: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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.

Page 21: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 22: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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.

Page 23: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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.

Page 24: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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.

Page 25: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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!

Page 26: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 27: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 28: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

TipTip

Want to install a multifunction Device with DIFxAPI?Populate the driver store with DriverPackagePreinstall()

Then call DriverPackageInstall()

Page 29: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 30: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 31: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 32: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 33: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 34: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

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

Page 35: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot
Page 36: DMI: Driver Install Frameworks Tools And Strategies Patty Esack Program Manager Device Management and Installation (DMI) Team Microsoft Corporation Gernot

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.