WS2008: Printer-Driver Packages

Day Twelve.  We’re almost halfway through our series.  Today we’ll continue on with our Printing theme – specifically, Printer-driver packages.  We’ll also provide some background on the driver store feature of Windows Vista and Windows Server 2008.

Printer-driver packages are digitally signed printer drivers that install all of the components of the driver to the driver store on computers running Windows Vista or Windows Server 2008.  Using printer-driver packages on a print server that is running Windows Vista or Windows Server 2008 enables users who are not members of the local Administrators group to connect to the print server and install (or receive) updated printer drivers.  Before we go too much further, let’s go over the concept of the driver store.

The driver store was first introduced in Windows Vista as a trusted cache of drivers that are stored in subfolders in the following folder: %systemroot%\system32\DriverStore\FileRepository.  The subfolder naming convention is based upon the name of the INF file that accompanies the package, along with an 8-character suffix as shown below:

imageWhen a third-party driver (including a printer driver) is installed, the driver package is automatically copied into the driver store.  The driver is then installed from the driver store.  When a driver package has been copied into the driver store it is staged.  Drivers can be staged without immediately being installed on the system.  This makes the drivers available for installation at a later time.  Adding a driver package to the driver store requires administrator rights, by default.  Once a driver package has been staged, the driver may be installed by a non-administrative user.

End users do not generally interact with the driver store itself.  All driver developers, including printer driver developers, must understand the workings of the driver store during driver installation as it will effect the driver development process.

Normal driver installation methods, such as INF-based installation or installation via a setup application, automatically copy the driver package into the driver store.  Driver package integrity and signing are checked when the driver package is added to the driver store.  An administrator can also add a driver package to the driver store manually, without installing the driver, by using the Pnputil.exe utility.  This utility ships with Windows Vista and Windows Server 2008.

It is important to remember that the driver store is a side-by-side store.  Earlier versions of driver packages remain in the store even after a later version is added.  In addition, driver packages are not automatically deleted from the driver store when drivers are deleted.  If you install a printer that has multiple driver packages in the driver store, the newest driver will be used.  Since the driver store is a trusted store, adding a package to the driver store is a privileged operation.  A driver can be staged only by an administrator or a standard user who has been granted driver installation rights by enabling the Allow non-administrators to install drivers for these device setup classes group policy setting.  Before a driver package is added to the driver store, the package is checked to ensure that all files that the INF file references are actually in the driver package.  Some INF files might refer to files that are not included in the driver package, which is a problem with the INF file.  Although this was sometimes ignored in Windows XP, Windows Vista requires that all files that the INF file references are in the package or the package itself will not be staged.

So what components are contained in a (printer) driver package?  There are three main components.  First, the INF file.  This file contains information that the system installation components use to install support for the device.  Every device must have an INF file.  Second, there is the Catalog file (.cat).  This contains a cryptographic hash of each file in the driver package.  Windows uses these hashes to verify that the package was not altered after it was published.  Finally, there are the driver files themselves.  Driver files include the configuration files, driver files and any data files needed to support the driver.

The Windows Server 2008 printing infrastructure uses complete driver packages whenever possible in the following scenarios:

  • Local Printer Installation: When an administrator installs a printer, the complete print driver package is automatically added to the driver store and the driver is then installed.
  • Remote Printer Installation: When an administrator installs a print driver remotely, using the Add Driver Wizard, the complete print driver package is added to the driver store on the remote machine and the driver is then installed from the driver store on the remote machine.
  • Package Point and Print: When a Windows Vista or Windows Server 2008 "client" connects to a shared printer on a Windows Vista or Windows Server 2008 print server, package point and print copies the complete driver package from the driver store on the remote print server to the driver store on the client.  Then package point and print installs the driver on the local machine from the local driver store.
  • Web Package Point and Print:  When a Windows Vista client uses Internet Printing to connect to a shared printer that is hosted by a Windows Vista or Windows Server 2008 print server that has a driver package, web package point and print copies the complete driver package from the driver store on the remote server to the driver store on the client.  The driver is then installed on the local machine from the local driver store.

That will wrap up the twelfth post in our series.  Tomorrow we’ll be looking at enhancements to the Print Management Console.  Until next time …

CC Hameed


Share this post :