Core Printer Driver Improvements

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

Universal Printer Description Format UPDF. UPDF Version 1.0 Agenda UPDF Overview –History –Design Last Call –Review changes –Approval or requirements.
Testing And Tools For Print And Imaging Drivers
Sharpen Your MVC Views with Razor By Jon Marozick.
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
Android architecture overview
Microsoft Windows XP SP2 Urs P. Küderli Strategic Security Advisor Microsoft Schweiz GmbH.
Ellucian Mobile: Don’t text and drive, kids!
Auxiliary Display Platform in Longhorn Andrew Fuller Lead Program Manager Mobile PC microsoft.com Microsoft Corporation.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Chapter 10 Chapter 10: Printer Management. Chapter 10 Learning Objectives n Describe the printing process used by Windows NT n Install a local printer.
IIS7: Building New Core Server Modules Michael Volodarsky COM406 Program Manager Microsoft Corporation.
Windows Forms in Visual Studio 2005: An in-depth look at key features Name: Mike Henderlight Title: Program Manager.
Mobile Application Development
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Printer Driver Setup and 64-bit Implications. Outline Development Understanding how to write a printer driver for 64-bit systems What’s different and.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
WDK Driver Test Manager. Outline HCT and the history of driver testing Problems to solve Goals of the WDK Driver Test Manager (DTM) Automated Deployment.
Developing XPSDrv Print Drivers
Filter-based Print Drivers: Overview. Outline MetroDrv Architecture and Data Flow Filter Pipeline Implementation MetroDrv Filter Development Discussion.
Print Verifier Ashwin Needamangala Senior Test Development Lead Documents and Printing Team
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
XPSDrv Best practices using Print Verifier
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
DXVA 2.0 A new Hardware Video Acceleration Pipeline for Windows Vista
New Document Lifecycle Opportunities N. Gregg Brown Lead Program Manager Digital Documents microsoft.com Microsoft Corporation.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Debugging Print And Imaging Drivers. Print driver team philosophy on driver quality There are tools to detect violations Wrongful development assumptions.
Microsoft Confidential Gregg Brown| Lead Program Manager Windows Digital Documents Team | Microsoft Corporation XPS Overview and Demonstration.
Module 14: Configuring Print Resources and Printing Pools.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Advances in Windows Printing Daniel Emerson Program Manager Digital Documents Platform and Solutions Microsoft Corporation.
Windows Image Acquisition Enhancements In Windows Vista
Introducing Reporting Services for SQL Server 2005.
Developing Reporting Solutions with SQL Server
Exploiting New Capabilities for Search And Organization Kerem Karatal DAT307 Lead Program Manager Microsoft Corporation.
XPS Rasterization Service in Windows 7
Module 3 Configuring File Access and Printers on Windows ® 7 Clients.
Web Services For Devices: The.NET Vision Realized Rob Williams Program Manager Windows Device Experience Group microsoft.com Microsoft Corporation.
Module 3: Configuring File Access and Printers on Windows 7 Clients
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
Windows Color System Overview Lavanya Vasudevan Program Manager Digital Documents Platform and Solutions microsoft.com Microsoft Corporation.
Module 4 Planning for Group Policy. Module Overview Planning Group Policy Application Planning Group Policy Processing Planning the Management of Group.
Error Management Solutions Synergy With WHEA John Strange Software Design Engineer Core OS microsoft.com Microsoft Corporation.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
Page 1 Printing & Terminal Services Lecture 8 Hassan Shuja 11/16/2004.
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Hosting Websites and Web Applications with Microsoft ® SQL Server ® 2008.
Windows Forms in Visual Studio 2005: An in-depth look at key features Name: Joe Stegman Title: Lead Program Manager Session code.
Goodbye SMI - ACPI and Graphics Driver/System Firmware Interface Paul Blinzer Staff Engineer ATI Research, Inc.
Longhorn Search and Organize User And Developer Experience Paul Cutsinger – Lead Program Manager Kerem Karatal – Lead Program Manager Microsoft Corporation.
Package! Publish! Print! Brian Adelberg Digital Document Solutions Software Development Lead Microsoft Corporation.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
Details On The Longhorn Spool File Format. Outline Metro Packages Reach Package Structure Reach Markup Other Topics.
The 2007 Microsoft Office System Servers Enterprise Content Management, Workflow and Forms Martin Parry Developer and Platform Group, Microsoft Ltd
Windows Server 2003 SP1 Technical Overview John Howard, IT Pro Evangelist, Microsoft UK
Introduction to SQL Server 2000 Reporting Services Jeff Dumas Technical Specialist Microsoft Corporation
11 SUPPORTING INTERNET EXPLORER IN WINDOWS XP Chapter 11.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
The effort-saving, cost-cutting, low-overhead, cloud capture platform.
Developing Drivers in Visual Studio
Building a great Metro style device app for your printer
CMPE419 Mobile Application Development
Customizing your device experience with assigned access
5/8/2019 3:20 AM bQuery-Tool 3.0 A new and elegant way to create queries and ad-hoc reports on your Baan/Infor ERP LN data. This Baan session is a query.
CMPE419 Mobile Application Development
Windows Forms in Visual Studio 2005: An in-depth look at key features
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Core Printer Driver Improvements

Goals Understand what’s new in Unidrv and PScript5, the Windows codenamed "Longhorn" core drivers Understand how to take advantage of the new enhancements in the core drivers Understand how the core drivers and plug-ins interact with existing Windows operating systems

Outline Longhorn core printer driver themes Overview of new features Feature details Additional notes for Longhorn printer driver developers

Longhorn Core Printer Driver Themes Provide an improved user experience Consistent end user experiences for inbox and outbox drivers Improved feature set and reliability Provide new innovation opportunities Feature parity between existing monolithic solutions and inbox drivers Improved fidelity, smaller PDL output Competitive performance for inbox solutions

Overview: Planned Rendering Features Applications Provided by: Microsoft GDI ISV Print Spooler IHV Rendering Plug-in(s) Pre-analysis Unidrv GPD Parser Optimized PDL Output Print Hardware Devices

Overview: Planned Configuration Features Applications Full UI Replacement Provided by: PrintTicket & PrintCapabilities Support Microsoft GDI ISV Print Spooler IHV Configuration Plug-in(s) New Core Helper Interface Unidrv UI / PScript5 UI GDL Parser GDL- based Config AsyncNotify Auto-Config GPD/PPD Parser Print Hardware Devices

Core Printer Driver Improvements Details

GDL – Generic Description Language Allows Unidrv to provide parsed GPD config file to plug-ins (not available in PScript5) Converts input into XML data that can be easily consumed Supports a generic user defined data Allows you to add additional data Visible only through GDL parser

GDL – Generic Description Language UnidrvUI OEM Configuration Plug-in BiDi Support GPD Parser GDL Parser Data inside GDL statements will not be used by Unidrv Output from GPD parser was not designed to be published to plug-ins GPD Parser sees… *PrinterName: “ThatPrinter” *BiDiStuff: ... ... *Ifdef: GDL *% My other structured *% data & templates *Endif

GDL – Generic Description Language UnidrvUI OEM Configuration Plug-in BiDi Support GPD Parser GDL Parser Allows IHVs to access information from the GPD Allows you to provide arbitrary data in the config file(s) that your plug-ins can consume Provides BiDi support GDL Parser sees… *PrinterName: “ThatPrinter” *BiDiStuff: ... ... *Ifdef: GDL *% My other structured *% data & templates *Endif

GDL Output GDL Parser *GPDFileName: Sample.gpd *Feature: RESDLL { *ConcealFromUI: TRUE *Option: UniresDLL *Name: unires.dll } ... GDL Parser <?xml version="1.0" encoding="UTF-8"?> <SnapshotRoot ...> <GDL_ATTRIBUTE Name="*GPDFileName" xsi:type="GDLW_string">Sample.GPD</GDL_ATTRIBUTE> <CONSTRUCT Name="*Feature" Instance="RESDLL"> <GDL_ATTRIBUTE Name="*ConcealFromUI?“ xsi:type="GDLW_XML_BOOLEAN">TRUE</GDL_ATTRIBUTE> <CONSTRUCT Name="*Option" Instance="UniresDLL" Constrained="FALSE"> <GDL_ATTRIBUTE Name="*Name" xsi:type="GDLW_string" >unires.dll</GDL_ATTRIBUTE> </CONSTRUCT> ... </SnapshotRoot>

GDL Templates Templates: Enable you to add custom data to the config file Define how that data is formatted and presented to your plug-in A standard template is provided for all config content that the core drivers understand Your additional templates can appear inline in your GPD file inside an *Ifdef GDL

GDL: Sample Template *Template: GPD_NORMAL_STRING *% ANSI string { *Type: DATATYPE *DataType: FILTER_TYPE *ElementType: XSD_STRING *FilterTypeName: "NORMAL_STRING" } *Template: V_QUERYSTRING *Type: ATTRIBUTE *ValueType: GPD_NORMAL_STRING *Virtual: TRUE

GDL: Sample Template (con’t) *Template: QUERYSTRING { *Name: "*QueryString" *Inherits: V_QUERYSTRING } *Template: BIDIQUERY *Name: "*BidiQuery" *Instances: <ANY> *Type: CONSTRUCT *Members: (QUERYSTRING) *Production: SATISFY_ALL *Member: QUERYSTRING {*Occurs: 1 }

Auto-config Enables support for automatic detection of installable options Requires no plug-in code. GDL changes only. Supported by tcpmon Unidrv: Auto-config information is embedded in GPD / GDL file PScript5: You can include an additional GDL file specifically for BiDi. You will not be able to access this file from your plug-in.

Auto-config: Example *Feature: DuplexUnit { *BidiQuery: DuplexInstalled *QueryString: "\Printer.Configuration.DuplexUnit:Installed" } *BidiResponse: DuplexInstalled *ResponseType: BIDI_BOOL *ResponseData: ENUM_OPTION (DuplexUnit)   *Option: NotInstalled *BidiValue: BOOL(FALSE) *Option: Installed *BidiValue: BOOL(TRUE)

New Core Helper Interface Models the existing PScript5 IPrintCoreUI2 interface In addition, the interface: Is available in both Unidrv & PScript5 Doesn’t use multi strings Was designed to maximize performance & ease of use

New Core Helper Interface DECLARE_INTERFACE_(IPrintCoreHelper, IUnknown) { STDMETHOD(GetOption) (…); STDMETHOD(SetOptions) (…); STDMETHOD(EnumConstrainedOptions) (…); STDMETHOD(WhyConstrained) (…); STDMETHOD(EnumFeatures) (…); STDMETHOD(EnumOptions) (…); STDMETHOD(GetFontSubstitution) (…); STDMETHOD(SetFontSubstitution) (…); STDMETHOD(CreateInstanceOfMSXMLObject) (..); }

New Core Helper Interface IPrintCoreHelper IPrintCoreHelperPS IPrintCoreHelperUni Unidrv STDMETHOD(CreateGDLSnapshot) (…); STDMETHOD(CreateDefaultGDLSnapshot) (…); PScript5 STDMETHOD(GetGlobalAttribute) (…) STDMETHOD(GetFeatureAttribute) (…); STDMETHOD(GetOptionAttribute) (…);

New Core Helper Interface Support for Private Features Unidrv Metafile Spooling Pages per sheet (N-Up) Page order Text as graphics PScript5 PScript custom page size Metafile spooling Mirroring Output format & protocol Pages per sheet & page order … and much more The Goal: Allow plug-ins to configure any settings that the core driver allows a user to set.

UI Replacement (The Easy Part) HRESULT __stdcall OEMUI::HideStandardUI( DWORD dwMode ) { switch( dwMode ) case OEMCUIP_DOCPROP: case OEMCUIP_PRNPROP: return S_OK; } return E_NOTIMPL;

UI Replacement (The Harder Part) Write your UI Use GDL Use the new helper interface If you are trying to get your driver in-box, follow in-box UI guidelines. Key points to be aware of: Minimal branding Minimal graphics –16-bit is preferred Standard Windows design guidelines

Planned Rendering Performance Enhancements Far East TrueType font support for Unidrv PCL-XL enhancements Monochrome text z-order fixes Blank band optimizations New DDI hooks Intra-page color/black band switching JPEG escape support Opt-in rendering enhancements for Unidrv

Pre-analysis Provides the driver access to primitives in a pre-rendering pass Force banding: first band is the full page with no band clipping No rendering during pre-analysis pass Enabled by GPD flag Pre-analysis Unidrv samples will be available in Longhorn builds

Pre-analysis for Unidrv Raster Driver (no OEM preanalysis) OEMStartPage OEMStartBanding OEMTextOut( “Windows”) OEMNextBand OEMTextOut(“Rocks!”) OEMStartPa ge OEMStartBanding OEMTextOut( “Windows”) OEMNextBand OEMTextOut(“Rocks!”) OEMStartPage OEMStartBanding OEMTextOut( “Windows”) OEMNextBand OEMTextOut(“Rocks!”) My page Windows Rocks!

Pre-analysis for Unidrv Raster Driver (OEM preanalysis) OEMStartPage OEMStartBanding OEMTextOut( “Windows”) OEMTextOut(“Rocks”) OEMNextBand(pptl=null) OEMNextBand OEMTextOut(“Rocks!”) OEMStartPage OEMStartBanding OEMTextOut( “Windows”) OEMTextOut(“Rocks”) OEMNextBand(pptl=null) OEMNextBand OEMTextOut(“Rocks!”) OEMStartPage OEMStartBanding OEMTextOut( “Windows”) OEMTextOut(“Rocks”) OEMNextBand(pptl=null) OEMNextBand OEMTextOut(“Rocks!”) OEMStartPage OEMStartBanding OEMTextOut( “Windows”) OEMTextOut(“Rocks”) OEMNextBand(pptl=null) OEMNextBand OEMTextOut(“Rocks!”) My page Windows Rocks!

PrintTicket & PrintCapabilities Open-ended configuration infrastructure Applications can read arbitrary print job settings, not just limited fields available in public DEVMODE Providing a better app experience requires help from the drivers Unidrv and PScript5 both provide extended PrintTicket & PrintCapabilities support

Controlling PrintTicket & PrintCapabilities From plug-in code: Implement IPrintOemPrintTicketProvider Control or change how GPD/PPD-based features appear in PrintTicket & PrintCapabilities Edit XML results directly Support settings & capabilities of private DEVMODE From the GPD/PPD file: Override the namespace the core driver generates for your driver Map features in the GPD/PPD file to specific public print schema features

Down-level Operation and Dependencies Planned technologies exposed through core drivers GDL (Windows 2000 & newer) PrintTicket & PrintCapabilities (Windows XP with Windows FX, Longhorn) Full UI replacement (Windows 2000 & newer) Pre-analysis (Windows XP SP1 & newer) Technologies dependent on non-driver components will not be available to drivers running down-level Async UI/Async Notification Bidi API (on Windows 2000) Custom print processors (Point & Print)

Down-level Operation and Dependencies New drivers that use these technologies need to be platform aware Operate gracefully on platforms where technology is not available Controlled functional degradation is acceptable; down-level instability is not In-box drivers must run with the same binaries on Windows 2000, Windows XP, Windows Server 2003, and Longhorn

No Kernel Mode Print Drivers In Windows Server 2003, installation of kernel mode print drivers is blocked by default Policy-based In Longhorn, kernel mode printer drivers will not run The infrastructure to support them will not be present There will be no way to enable kernel mode drivers Core drivers provide a quick way to migrate away from kernel mode drivers and provide maximum functionality for minimal cost

Call to Action Explore Longhorn Print Architecture Identify strategic devices to target the Metro Print Path Identify extension scenarios Convert GDI/DDI based drivers to MetroDrv drivers Explore the sample filters in Longhorn Beta 1 WDK Consider on-device rendering with a RIP implementation A reference implementation is planned for Longhorn Beta 1 tools Alternatively, move monolithic drivers to the core driver architecture This provides the most stable and secure GDI/DDI-based driver environment for customers Take advantage of the new features in the core drivers Start building on Longhorn Beta

Additional Resources Community Sites Web resources http://www.microsoft.com/communities/default.mspx MSDN Developer Community Chats: Printer Drivers -- Ask the Experts Online http://msdn.microsoft.com/chats/windows/windows_102402.asp Windows Drivers: Printer Drivers http://msdn.microsoft.com/chats/windows/windows_101602.asp Windows Drivers Printing and Networking http://msdn.microsoft.com/chats/windows/windows_022002.asp Web resources WS-Devices Profile: http://msdn.microsoft.com/webservices/understanding/specs/ default.aspx?pull=/library/en-us/dnglobspec/html/devprof.asp Printer Working Group http://www.pwg.org WHDC Printing home page: http://www.microsoft.com/whdc/device/print/default.mspx WHDC Still Imaging / WIA home page: http://www.microsoft.com/whdc/device/stillimage/default.mspx

Additional Resources E-mail For developer print questions: prninfo @ microsoft.com For developer scan questions: wiainfo @ microsoft.com For developer color questions: mscolor @ microsoft.com

© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.