160 likes | 367 Views
Printer Installation and Driver Management. Shawn Maloney Program Manager WEX DOX Device Interfaces shawnmal@microsoft.com. Agenda. Building on Windows Vista Driver Store Package-Aware Drivers Core Drivers Moving Forward Driver Isolation Compatible IDs. Building on Windows Vista.
E N D
Printer Installation and Driver Management Shawn Maloney Program Manager WEX DOX Device Interfaces shawnmal@microsoft.com
Agenda • Building on Windows Vista • Driver Store • Package-Aware Drivers • Core Drivers • Moving Forward • Driver Isolation • Compatible IDs
Building on Windows Vista • All drivers are copied into the driver store • Simplifies driver management • Enables migration, rollback, and recovery • Provides users access to a trusted repository of drivers • Package-aware drivers enable Package Point and Print • Ensures drivers are available in the driver store through Point and Print • Allows full driver installation on the client • Requires driver dependencies to also be package-aware
Building on Windows Vista • Core drivers support package-aware drivers • Initially introduced to enable shared components like ntprint.inf to be used in Package Point and Print • Enables smaller and simpler driver packages • Allows shared components to be kept in the driver store • IHV core drivers becoming more available • Most of the value comes from being inbox • Enables smaller device-specific driver packages
Building on Windows Vista • Limitations of core driver servicing • All core drivers referenced in an INF share the same minimum version • No check to ensure that a core driver is in the driver store before installation • Servicing core drivers • Test them very well so that you don’t have to service them • Include the core driver in your driver package • Use CopyINF to load the core driver during installation
Moving Forward: Driver Isolation • Isolates print drivers into separate processes • Minimizes the impact of a driver crash on the rest of the print system • IT Admins can force drivers into a shared isolation thread • Drivers can opt into Isolation • Group Policy, the driver INF, and the registry control the isolation behavior for each driver on a system
Moving Forward: Driver Isolation – INF Support • “DriverIsolation” is INF declaration • 0 = Disabled • 2 = Enabled • 1,3 = Reserved for future use • INF Example [Version] … DriverIsolation=2
Moving Forward: Driver Isolation – Group Policies • Group Policies • “Run print drivers in isolated processes” • Enabled – Driver isolation attempted • Disabled – No driver isolation attempted • “Override isolation mode compatibility setting advertised by driver” • Enabled – Driver isolation attempted regardless of INF • Disabled – Driver isolation honors INF
Moving Forward: Driver Isolation – Registry Keys • Per-driver control • Managed in the print management console (PMC) • Values dictate behavior • Disabled – No driver isolation attempted • Shared – Driver isolation forced in Shared process • Isolated – Driver isolation forced in Isolated process
Moving Forward: Compatible IDs • Allows for a second level of device-to-driver mapping • Only considered when a hardware ID match isn’t available • Enables families of devices to be matched against a single driver • Embed the Compatible ID in the 1284 ID String • Keywords: “CID” and “COMPATIBLEID” • Maximum length of 180 characters
Moving Forward: Compatible IDs • Update INFs to use compatible IDs “Printer Driver Name” = InstallSection,,CompatibleID • PnP alters reported compatible ID • Reported by device: CID=FabrikamClass1 (This goes in the firmware) • Reported by PnP: 1284_CID_FabrikamClass1 (This goes in the INF)
Call to Action • Create package-aware drivers • Carefully consider the value of creating your own core drivers • Enable driver isolation in your drivers • Start implementing compatible IDs in your hardware
Additional Resources • White Papers coming soon to the WHDC Web site: http://msdn.microsoft.com/whdc • Driver Isolation • Compatible ID • Printer Driver Best Practices • Printer Installation on MSDN: http://msdn.microsoft.com/library/aa907636.asp