Printer Driver Isolation

The printing subsystem in Windows 7 (and Windows Server 2008) has been improved drastically and new features have been added. Windows 7 enjoys a dedicated console for sharing and managing printers. The Print Management Microsoft Management Console (MMC) snap-in apart from the normal management tasks assists you in monitoring print queues, and receiving notifications when print queues stop processing print jobs. In this post, I would like to discuss the new feature of Windows 7 printing subsystem called Printer Driver Isolation.

Printers’ drivers can cause a number of problems but one of the most annoying incidents is when the faulty driver causes the print spooler process to crash and halts all print jobs. Administrators or users would then need to restart the service to recover from the crash. This often happens with beta or incorrect versions of printers’ drivers.

Printer driver isolation allows you to isolate unstable drivers by running them in separate processes as to increase the stability of the printing subsystem. These run within a separate PrintIsolationHost.exe process instead of the spooler process, hence a driver crash will not stop other print jobs. The crash is isolated and will not halt the print spooler.

You can access the Printer Driver Isolation feature from the Print Management snap-in by typing Print Management in the Start search text box and pressing enter. Click All Drivers under Custom Filters and select a driver, right click and select Set Driver Isolation as shown below:

The available modes for a selected printer driver are none, shared, isolated and system default.

None – do not isolate and run the driver within the spooler process

Shared – run the driver with other isolated drivers within a shared process

Isolated – run the driver on its own in an isolated process

System Default – depending on the driver’s .inf file contents set by the manufacturer, this option indicates whether the driver is designed to support driver isolation or not. None indicates that the driver does not support this feature while, shared indicates that it does. If no DriverIsolation entry exists in the drivers .inf file then this option shows None but this does not necessarily mean that the driver does not support Isolation features!