Presentation is loading. Please wait.

Presentation is loading. Please wait.

DMI: Driver Install Frameworks Tools And Strategies

Similar presentations

Presentation on theme: "DMI: Driver Install Frameworks Tools And Strategies"— Presentation transcript:

1 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 Egenera, Inc.

2 Session Goals Attendees should leave this session with the following
Microsoft’s goals for the Driver Install Frameworks (DIFx) tools Benefits of using the tools today Costs and time to market Enterprise deployment Benefits of using the tools moving forward Forward compatibility Migration New features and functionality Feature set of the current DIFx tools How to use the DIFx tools How to give feedback

3 Session Outline Driver Install Frameworks (DIFx) goals
Simplify Development Improve the User Experience Vendor Differentiation Introduction to the DIFx Tools Driver Package Installer (DPInst) Driver Install Frameworks for Applications (DIFxApp) Driver Install Frameworks API (DIFxAPI)

4 Driver Install Frameworks Goals Simplify Development
Develop to the frameworks The 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 develop Can 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

5 Driver Install Frameworks Goals Improve 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”

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

7 Driver Install Frameworks Goals Vendor 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

8 Today’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

9 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

10 Driver Package Installer (DPInst)
DPinst is an executable that simplifies software-first installations of driver packages and simplifies your development process Easy to Deploy Installer 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 install INF + Driver DPInst.exe DIFxAPI SetupAPI PC

11 DPInst 3 Steps to a customer ready installation
Place DPInst.exe in temp dir Place INF and driver in temp dir Compress directory into self-extracting EXE that launches DPInst Publish to your customers!

12 DPInst Demo Copy DPInst to sample folder and execute
“Plug in” a Toaster device Uninstall drivers for device in Device Manager Implement simple customizations Perform a silent install with DPInst

13 DIFxApp Driver Install frameworks for applications
Windows Installer custom actions that install drivers during application install Features Support for install, uninstall, repair, rollback, and upgrade of drivers Tracks and maintains application-driver-service associations and provides reference counting on drivers and services Application Driver INF Windows Installer DIFXApp DIFxAPI SetupAPI PC

14 DIFxApp Driver Install frameworks for applications
How to incorporate it into your setup program Available as a Windows Installer merge module InstallShield and Wise Windows Installer XML (WIX) “We’ve supported DifX in previous InstallShield releases, and we’re looking forward to support DifX 2.0 this year following its general availability. Our customers count on InstallShield to stay current with the latest Microsoft technologies, and they’ve rewarded us by making us the software industry’s first choice for strong, reliable installations.” Bob Corrigan InstallShield Product Manager Macrovision

15 DIFxApp Microsoft Windows Installer Demo
Create DIFxAppSample.msi for Toaster sample Add DIFxApp to DIFxAppSample.msi using either Visual Studio .NET or the Orca.exe tool Run DIFxAppSample.msi to install the package

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

17 DIFx Usage Scenario

18 Egenera BladeFrame Overview
24 Processing Blades Server-class computers with 2 or 4 high-speed Intel or AMD 32 / 64 bit processors, GB of memory Contains no storage or networking hardware Contains no keyboard or mouse ports and no display adapter 2 Control Blades Server-class computers with a full complement of hardware Houses the physical connections to SAN storage and network resources Houses the management software Provides high availability and failover management Back Plane Connections Provides redundant high-speed fabric connections between all Processing and Control Blades Provides out-of-band management connections cBlade pBlade/pServer Application Files Fibre Channel SAN Application Files Application Files

19 Egenera Windows pServer Driver Stack
MPIO Drivers NDIS HID GDI Provided by: vKBD / vMouse DisplayDriver Microsoft DSM Egenera vNIC Miniport Driver vSCSI Port Driver vKVM Driver vVGA Driver vCOM Driver IPMI Driver Virtual Bus Driver Interconnect Driver PCI Bus Driver ACPI Driver Interconnect PCI Cards COM Ports Out-of-Band Management Connection Physical Layer Egenera provides 11 drivers to support its virtual architecture. 8 drivers are boot drivers and cannot fail!

20 Upgrade Application Requirements
Complete Driver Set Upgrades One upgrade application that contains the complete driver set so that the user can apply any upgrade to any release family. Major Version Upgrades Upgrade all 11 drivers May install new drivers to provide new functionality Minor Version Updates / Patches Update one or more drivers Updates are cumulative - Installer applies all required updates and patches

21 Upgrade Application Requirements
Standard Toolset Command 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.

22 Upgrade 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.

23 Upgrade 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 customization E.g. Upgrade without MPIO driver updates. User Experience Provide as much automation as possible Minimize reboots and system downtime Provide “silent install” option that requires no user interaction

24 Upgrade Challenge Manage complexity of upgrading many drivers
Drivers may have interdependencies. Failure of boot driver updates may render system not bootable. Upgrades must be done remotely No physical keyboard, mouse and display Maintain High Availability pServer must be operational after upgrade / rollback completes. pServer must always be in a known state. Minimize installer authoring effort Creating upgrades and patches should not be a major development effort.

25 DIFxApp 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.

26 DIFxApp 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.1 Upgrade 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.

27 DIFxApp Implementation
Authoring a Windows Installer Package using WiX and DIFxApp Create Driver Package Add 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 MSI Authenticode sign the MSI before shipping!

28 Call To Action Come see a live demo of the Egenera BladeFrame
A BladeFrame is presented at the Hardware Innovation Showcase Contact Egenera for more information

29 DIFxAPI Driver Install Frameworks Library
DIFxAPI exports the following functions DriverPackagePreinstall() DriverPackageInstall() DriverPackageUninstall() DriverPackageGetPath() Features Support 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 App PC SetupAPI DIFxAPI INF Driver

30 Tip Want to install a multifunction Device with DIFxAPI?
Populate the driver store with DriverPackagePreinstall() Then call DriverPackageInstall()

31 Future Tools And Features 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

32 Future Tools And Features Driver 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

33 Summary 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

34 Call To Action Use the Driver Install Frameworks tools
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 us at:

35 Community Resources Windows Hardware and Driver Central (WHDC)
Technical Communities Non-Microsoft Community Sites Microsoft Public Newsgroups Technical Chats and Webcasts Microsoft Blogs

36 Additional Resources Web Resources Other Resources Newsgroups
Writing a Device Installation Application MSDN search keywords: “Writing a Device Installation Application” Driver Install Frameworks tools Windows Installer SDK Windows Hardware and Driver Central Using Authenticode to Digitally Sign Driver Packages Other Resources Toaster Installation Package Sample In the Windows XP and Windows Server 2003 DDK at src\general\toaster\toastpkg Newsgroups microsoft.public.development.device.drivers


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

Download ppt "DMI: Driver Install Frameworks Tools And Strategies"

Similar presentations

Ads by Google