Presentation on theme: "DMI: Driver Install Frameworks Tools And Strategies"— Presentation transcript:
1 DMI: Driver Install Frameworks Tools And Strategies Patty EsackProgram Manager Device Management and Installation (DMI) Team Microsoft CorporationGernot SeidlerTechnical Lead Windows Engineering egenera.comEgenera, Inc.
2 Session Goals Attendees should leave this session with the following Microsoft’s goals for the Driver Install Frameworks (DIFx) toolsBenefits of using the tools todayCosts and time to marketEnterprise deploymentBenefits of using the tools moving forwardForward compatibilityMigrationNew features and functionalityFeature set of the current DIFx toolsHow to use the DIFx toolsHow to give feedback
3 Session Outline Driver Install Frameworks (DIFx) goals Simplify DevelopmentImprove the User ExperienceVendor DifferentiationIntroduction to the DIFx ToolsDriver Package Installer (DPInst)Driver Install Frameworks for Applications (DIFxApp)Driver Install Frameworks API (DIFxAPI)
4 Driver Install Frameworks Goals Simplify Development Develop to the frameworksThe Operating System (OS) will change, but the abstraction layer will notPackages are less likely to have compatibility problems moving forwardLower development costsDriver Package Installers are simple to developCan create a driver package without writing any codeSupport 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” scenarioFewer support callsOver time creates a standard paradigm for the device install user experienceUsers are more likely to know what to doSupports easy “value add”
6 TipUse 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 releaseVendors can still launch their own co-installers and finish install pagesThe tools will continue to evolve based on developer, user, and OEM feedbackNew 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 devicesStages the driver package for later device installDriver Install Frameworks for Applications (DIFxApp)Provides programmatic access to the Driver Install Frameworks tool engineIdeal for non-device driversE.g., File system filters for antivirus softwareDriver 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 DPInstIf no > Does your application installer use MSI?If yes > Use DIfxAppIf no > Use DIFxAPI
10 Driver Package Installer (DPInst) DPinst is an executable that simplifies software-first installations of driver packages and simplifies your development processEasy to DeployInstaller is ready to useNo need to write codeNo need to create a custom install programSuper-simple software first install with built-in support forVerifying package integrityAbility to require EULA acceptanceSoftware-first installINF + DriverDPInst.exeDIFxAPISetupAPIPC
11 DPInst 3 Steps to a customer ready installation Place DPInst.exe in temp dirPlace INF and driver in temp dirCompress directory into self-extracting EXE that launches DPInstPublish to your customers!
12 DPInst Demo Copy DPInst to sample folder and execute “Plug in” a Toaster deviceUninstall drivers for device in Device ManagerImplement simple customizationsPerform a silent install with DPInst
13 DIFxApp Driver Install frameworks for applications Windows Installer custom actions that install drivers during application installFeaturesSupport for install, uninstall, repair, rollback, and upgrade of driversTracks and maintains application-driver-service associations and provides reference counting on drivers and servicesApplicationDriverINFWindowsInstallerDIFXAppDIFxAPISetupAPIPC
14 DIFxApp Driver 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’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 sampleAdd DIFxApp to DIFxAppSample.msi using either Visual Studio .NET or the Orca.exe toolRun DIFxAppSample.msi to install the package
16 TipIf DIFxApp and DPInst are not flexible enough for you, create your own installer using DIFxAPI
18 Egenera BladeFrame Overview 24 Processing BladesServer-class computers with 2 or 4 high-speed Intel or AMD 32 / 64 bit processors, GB of memoryContains no storage or networking hardwareContains no keyboard or mouse ports and no display adapter2 Control BladesServer-class computers with a full complement of hardwareHouses the physical connections to SAN storage and network resourcesHouses the management softwareProvides high availability and failover managementBack Plane ConnectionsProvides redundant high-speed fabric connections between all Processing and Control BladesProvides out-of-band management connectionscBladepBlade/pServerApplicationFilesFibre Channel SANApplicationFilesApplicationFiles
19 Egenera Windows pServer Driver Stack MPIO DriversNDISHIDGDIProvided by:vKBD / vMouseDisplayDriverMicrosoftDSMEgeneravNIC Miniport DrivervSCSI Port DrivervKVM DrivervVGADrivervCOM DriverIPMI DriverVirtual Bus DriverInterconnect DriverPCI Bus DriverACPI DriverInterconnectPCI CardsCOM PortsOut-of-Band Management ConnectionPhysicalLayerEgenera provides 11 drivers to support its virtual architecture.8 drivers are boot drivers and cannot fail!
20 Upgrade 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 driversMay install new drivers to provide new functionalityMinor Version Updates / PatchesUpdate one or more driversUpdates are cumulative - Installer applies all required updates and patches
21 Upgrade 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 ConsistencyAny 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 DowngradeUsers must be able to return to an earlier version.Users must be able to roll back to the previous version.Atomic Upgrade and RollbackUpgrade 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 ConfigurationsProvide 32-bit and 64-bit upgrades.Provide 32-bit application updates under 64-bit WindowsProvide 32-bit to 64-bit migration for applications under 64-bit WindowsProvide customizationE.g. Upgrade without MPIO driver updates.User ExperienceProvide as much automation as possibleMinimize reboots and system downtimeProvide “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 remotelyNo physical keyboard, mouse and displayMaintain 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.
25 DIFxApp Implementation DIFxApp – The Answer to the Upgrade ChallengeEgenera’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 ChallengeAdditional MSI custom actions had to be developed forDriver consistency and compatibility checksMPIO upgrade / rollbackSystem configuration checksApplication configurationsThe 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.
27 DIFxApp Implementation Authoring a Windows Installer Package using WiX and DIFxAppCreate Driver PackageAdd DIFx identifiers to INFSign shippable driver package with WHQL or Authenticode signatureObtain test signatures from WHQL for testingCreate the WiX XML source file that describes the application and associated driver packagesThe 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!
28 Call To Action Come see a live demo of the Egenera BladeFrame A BladeFrame is presented at the Hardware Innovation ShowcaseContact Egenera for more information
29 DIFxAPI Driver Install Frameworks Library DIFxAPI exports the following functionsDriverPackagePreinstall()DriverPackageInstall()DriverPackageUninstall()DriverPackageGetPath()FeaturesSupport for install, uninstall, repair, and rollback of driversTracks and maintains application-driver-service associations and provides reference counting on drivers and servicesDevice Install AppPCSetupAPIDIFxAPIINFDriver
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 experienceUsers can plug in a device and have all the associated software install automaticallyPartners 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 validProvide a method for checking driver packages and INF files before they are added to the StoreDriver Install Verifier (DIVer)Watches a co-installer for invalid actionsProvide 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 SummaryThe Driver Install Frameworks (DIFx) is the new driver package model for driver developmentIt addresses key Independent Hardware Vendor (IHV)/Original Equipment Manufacturer (OEM) concernsFast time to market, technical support costs, learning curve, etc.Backward compatible up to Windows 2000It intends to reduce customer pain pointsDIFx will continue to evolve to provide a complete driver package development experienceAims to reduce OS crashes and fragility due to poorly written driver install packagesReduces Support and Development costsImproves the user experienceAllows Vendor differentiation
34 Call To Action Use the Driver Install Frameworks tools Provide us feedback…On the Driver Install Frameworks toolsOn how we can help you build a single package that supports both hardware-first and software-first installsus at: microsoft.com
35 Community Resources Windows Hardware and Driver Central (WHDC) Technical CommunitiesNon-Microsoft Community SitesMicrosoft Public NewsgroupsTechnical Chats and WebcastsMicrosoft 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 toolsWindows Installer SDKWindows Hardware and Driver CentralUsing Authenticode to Digitally Sign Driver PackagesOther ResourcesToaster Installation Package Sample In the Windows XP and Windows Server 2003 DDK at src\general\toaster\toastpkgNewsgroupsmicrosoft.public.development.device.drivers