WS2008: Printer-Driver Packages

WS2008: Printer-Driver Packages

  • Comments 6
  • Likes

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 :
Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • PingBack from http://all-in-one-printer.jfcforum.com/2008/02/12/ws2008-printer-driver-packages/

  • This is excellent information. Is there a similar DriverStore in Server 2003 that houses the list if inbox printer drivers? Additionally, is there a method to find and replace older inbox drivers from a 2003 server with the newer inbox drivers in a 2008 server during a server migration?

  • Can you please tell me how to turn OFF the driver update feature in windows 2008?  On my TS servers when a user logs on for the first time it will try and update the driver for a printer (shared on a print server).  This will cause some printers to go into a "Driver Update Needed" status instead of ready, and the user won't be able to print or the print job is delayed.

  • This article was referred to me by a Microsoft Support Technician, and seeing as how I am responsible for most of the printing at my company, and that we are deploying more and more Server 2008 platforms, and that this was "Day Twelve" of a series, can you send to me the links to the other "days" of the series?  Thanks

    Jon Golberg, MCSE

    Sr. Systems Administrator/West Corp

    402-716-1632

    jpgolberg@west.com

  • @Jon - It wasn't a series solely on Printing, it was a series on Windows Server 2008.  Click on the link for February 2008 in the "AskPerf Archives" on the right hand side and you'll see the entire list of posts we did as part of that series.

    - CC

  • CC Hameed,

    Great post, provides a lot of detail most of us engineers need on the order of operations, locations and the tools. Thank you.

    I am currently impacted by an odd issue with a print driver install, where using the printui.dll or the Print Management.msc has worked on 40 plus servers Windows 2008 Server and I now have a single Windows 2008 Server presenting the following errors for the same driver inf and set of files used with no issue on the other 40 -

    0x00000BC6 ERROR_PRINTER_DRIVER_BLOCKED

    The printer driver is known to harm the system.

    0x00000578 ERROR_INVALID_WINDOW_HANDLE

    Invalid window handle.

    Has MS updated something in a hotfix that would affect the 32bit unsigned driver install process where the popup to say yes would fail now, I understand the limits with 64bit system but all of these are 32bit and this one driver is the extracted files from a 2003 Server and again works/worked great until this one box.

    The only temp fix was to use a PS version just to have the one Queue created over the PCL version and no native inbox for it.

    So if this is not the fourm for this sort of help, please direct me or if anyone has seen this of late with unsigned drivers for 32bit system under Windows 2008 let me know.

    Thank you in advance.

    Rick