Thoughts from the EPS Windows Server Performance Team
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:
When 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:
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
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
@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.
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 -
The printer driver is known to harm the system.
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.