Thoughts from the EPS Windows Server Performance Team
Welcome back to our Windows 7 / Windows Server 2008 Launch Series. Day Six and we’re going strong. Today we’re going to switch our focus today from the Core OS to Printing, beginning with a brief overview of What’s New in Printing and some Printing Performance Enhancements. We’ll be covering some of the major features in dedicated posts, so let’s get started …
The first thing that Windows Sever 2008 administrators will notice is that the “Print Services” role has been renamed to “Print and Document Services” to reflect the addition of the Distributed Scan Server role service.
New features and Improvements have been introduced in the areas of:
In terms of Reliability, the main new feature is Print Driver Isolation (also referred to as “sandboxing”). This feature allows you to isolate print drivers from one another to prevent a faulty driver from bringing down the entire printing subsystem. For administrators, there are new enhancements in the Print Management Console – not just the ability to manage Print Driver Isolation, but also the ability to create more robust custom printer and driver filtering, and some new security settings features. PrintBRM has also been improved to offer better error handling and reporting as well as other enhancements. Additionally, with the addition of the Distributed Scan Management feature, administrators will have the ability to manage WSD-enabled network scanners from a centralized location. Most of the changes in the User Experience area are transparent to the user, but the main areas where users will be able to detect changes are in the areas of default printer handling as well as the addition of the Location-Aware Printing feature. We introduced XPS printing to the Windows printing architecture in Windows Vista and Windows Server 2008. With Windows 7 and Windows Server 2008 R2, we introduce some enhancements that provide more options for software and print driver developers and provide a better experience for end-users.
As I mentioned before many of the features listed above will be covered in upcoming posts – for today, let’s focus on the Printing Performance Enhancements. In Windows 7 and Windows Server 2008 R2 there are three main areas in which improvements in printing performance have been achieved:
Spooler boot-time performance enhancements: Improved spooler boot-time enhances the user experience by reducing the time it takes a user to get to their desktop during logon.
Don’t wait for spooler initialization before logon: Third-party components can initiate print requests during spooler startup, which can significantly delay getting to the desktop. In Windows 7 and Windows Server 2008 R2 these requests are allowed to fail during startup instead of waiting for the spooler to become operational, minimizing the amount of service activity during startup and logon.
Notify port monitors of ports in use: The spooler service now has a means to notify port monitors which ports are actually in use by printers, allowing them to perform some tasks only required when ports are active. This reduces overhead during spooler startup and during normal operation.
Less overhead from fewer print notifications: In previous versions of Windows, a lot of cycles in the spooler were spent on print notifications. Some print notifications have been reduced in frequency, reducing the overhead on the spooler.
Improved caching for Client-Side Rendering: With the introduction of client-side rendering, users in environments with remote printer connections often experienced delays in applications that made calls to printer APIs for remote printers. Caching for some key APIs has been improved; resulting in reduced delays or hangs in major applications for end users.
Default Printer Enhancements: Mobile users and network-connected devices are a rapidly increasing component in the enterprise environment. Mobile users are not only sales and customer facing users that travel, but also remote users that work outside the office, or users that work from home outside of typical business hours. In addition, consumers are expected to increase the number of shared and network printers in the home due to products such as Windows Home Server, the HomeGroup feature in Windows 7, and the numerous print server appliances that are available today. In these situations, the default printer must work properly regardless of changes to the network configuration. Additionally, enterprise users must be able to seamlessly move mobile PCs through different networks (home, work, public) with an actively updating printer connection state. Windows 7 and Windows Server 2008 R2 introduce some valuable enhancements to the consistency with which the default printer is determined, and provide a new tool which allows users to configure per-network default printers.
Default printer consistency enhancements: A collection of changes to improve the reliability and predictability of the default printer functionality for users was implemented in the spooler in both Windows 7 and Windows Server 2008 R2. The primary focus of these updates is a set of functionality corrections to the existing print spooler handling of the default printer for both local printers and printer connections.
Today’s post is a short one, but it should be enough to whet your appetite. I know some of you are probably wondering where CC has been for this Launch Series. Never fear – he’ll be here tomorrow to go over PMC Enhancements.
- Dane Smart
Could you elaborate on the "Improved caching for Client-Side Rendering" ?
How can code force the cache to be invalidated so that it must be updated the next time a request for bidirectional data does not take cached data?
As part of our printer driver the UI DLL calls DeletePrinterData to remove a registry entry so that the next GetPrinterData call should result in an RpcGetPrinterData call to the server PC. Instead it results in an ERROR_FILE_NOT_FOUND error code.