Download presentation
Presentation is loading. Please wait.
Published byElwin Mitchell Casey Modified over 9 years ago
1
Filter-based Print Drivers: Overview
2
Outline MetroDrv Architecture and Data Flow Filter Pipeline Implementation MetroDrv Filter Development Discussion Call to Action
3
Goals Define MetroDrv and the key components Understand information flow Communicate the requirements for developing MetroDrv drivers Windows Services IHV Supplied Components Present a set of sample filters for a MetroDrv driver Developed by Software Imaging
4
What is a MetroDrv driver? Extension of the Version 3 driver architecture Consumes Metro Spool Files in an extensible manner Sibling of the Unidrv and PScript core drivers Compatible with Windows XP and later Enabler for document and color workflow scenarios Persist richness of Avalon and Metro on paper Return to WYSIWYG High, wide and deep color from application to device
5
MetroDrv Driver Components Configuration Module Vendor defined Version 3 configuration module for the filter pipeline processing capabilities and device capabilities Requirements Support Version 3 driver configuration: Unidrv, PScript, monolithic configuration module PrintTicket/PrintCapabilities support GDI to Metro Converter Microsoft defined Version 3 driver rendering module Performs necessary conversions to support Win32 applications Processing Module (Filter Pipeline) Vendor defined processing module that processes Metro Reach Package content into the output PDL Filter Pipeline Configuration File Vendor defined setup file that describes the filters in the pipeline, including ordering, input and output data types
6
MetroDrv Driver Data Flow Provided by: Microsoft ISV IHV MetroDrv Driver Version 3 Driver Win32 App WinFX App Config Module/ Plug-in Conversion Render Module Filter Pipeline Filter 1 Filter N Metro
7
Filter Pipeline: Components and Interfaces
8
Filter Pipeline Outline Supports multiple vendor supplied filters Print Processing Filters Color conversion Filters Rendering Filters Setup by Filter Pipeline Configuration File XML file Defines filters in the pipeline and input/output data types Implicitly defines data processing order Public Interfaces implemented by vendors IPrintPipelineFilter IInterFilterCommunicator
9
Filter Pipeline Architecture Overview Service: PrintFilterPipelineSvc NT Authority\Local Service Normal non-admin user SeImpersonatePrivilegeSeCreateGlobalPrivilegeSeChangeNotifyPrivilege Controls Filter Creation and Communication Scheduler Inter Filter Communicator Property Bag Handle notifications from / to spooler
10
Filter Pipeline Architecture Overview PipelineManager PrintFilterPipelineSvc Control Tree Filters Reader/Writers Scheduler “Token” Value “Notify”“IDrvNotify” Property Bag N-UP Transparency Watermark Filter Pipeline Control Logic Provided by: Microsoft ISV IHV
11
Filter Pipeline Configuration File <Filter dll= “FirstFilter.dll" clsid= "{15e81b32-6838-49e9-a495-25664f3f09e9}" name= “Filter 1: NUp Filter" input= "{d4bb258b-ff10-4af0-b67e-bde41c5e0e1c}" output= "{f4873ed9-a87c-48e3-b6dd-f6e182fe97b8}“ /Filter> <Filter dll= “SecondFilter.dll" clsid= "{8c89b2aa-a151-4f94-92bf-7beaee679eab}" name= “Filter 2: Rendering Filter" input= "{f4873ed9-a87c-48e3-b6dd-f6e182fe97b8}" output= "{f50b8346-7a10-4d24-945c-1a2ca6fe9a11}“ /Filter>
12
Filter Interface interface IPrintPipelineFilter : IUnknown { HRESULT SetReadersWriters( IInterFilterCommunicator*pFilterCommunicator, IPrintPipelinePropertyBag*pIPropertyBag ); HRESULT ShutdownOperation( void ); HRESULT StartOperation( void ); }
13
Filter Communicator Interface interface IInterFilterCommunicator : IUnknown { HRESULT RequestReader( const wchar_t*pszStream, EPrintPipelineStreamAccessModeaccessMode, REFIIDiidRepresentation, REFIIDiidResultReader, void**ppReader ); HRESULT RequestWriter( const wchar_t*pszStream, EPrintPipelineStreamAccessModeaccessMode, EPrintPipelineStreamChangeModechangeMode, REFIIDiidRepresentation, REFIIDiidResultWriter, void**ppWriter ); }
14
Inter-Filter Communicator Details Filter Pipeline Manager Inter-FilterCommunicator FixedDocument Writer Metro Reader Stream FixedDocument Metro Spool File Inter-FilterCommunicator Stream Writer FixedDocument Reader Filter 1 Filter 2 … Filter N Provided by: Microsoft IHV
15
PrintFilterPipelineSvc Managed Code WinFx Printing Support Reach and Serialization Services Metro Spool File Winspool.drv and Extensions Spooler PrintQueue METR O Metro Reach Processing (Rich Content Structure) Scheduler FilterPipelinePrxy Port WinFX App Pipeline Manager Selector WaterMark Renderer N-Up Filter Pipeline Data Flow - Longhorn Provided by: Microsoft ISV IHV Unmanaged Code
16
PrintFilterPipelineSvc Managed Code WinFx Printing Support Reach and Serialization Services Metro Spool File Winspool.drv and Extensions Spooler PrintQueue METR O Scheduler MS Print Processor Port WinFX App Pipeline Manager Selector WaterMark Renderer N-Up Filter Pipeline Data Flow - Downlevel
17
Consuming Metro in a Driver Consuming Metro in a Driver Software Imaging
18
Outline Introduction Filter essentials Building a reusable filter Building functionality within the pipeline Sample Filter Pipeline
19
Software Imaging - Who are we? Specialists in printing and imaging technologies Founded 1989 Over 80 million drivers shipped worldwide Offices in North America, Japan and Europe Unidrv specialists and developers Developing solutions for the industry MetroDrv host drivers MetroDrv wide-gamut color printing (scRGB)
20
Filter Essentials: Filter Types Document modifier e.g. booklet printing, watermark Markup modifier e.g. color conversion Renderer e.g. Raster conversion, print output formatting Markup “simplifier” Handling unsupported features “Value add” e.g. print preview, status monitor, accounting, archiving
21
Filter Essentials: Handling the PrintTicket Every filter is interested in the PrintTicket (PT)! Three levels of PT: Job, Document, Page Validation of the Print Ticket Validate job-level PT Merge with default PT and validate For each document in the job Merge doc-level PT with job-level PT and validate For each page in the document Merge page-level PT with doc-level PT and validate Extract filter-relevant feature options
22
Building a Reusable Filter Metro in, Metro out Rely on the PrintTicket for control No device assumptions or dependencies Example: 2-up filter
23
Building Functionality Within the Pipeline Combining filters to build features Need inter-filter communication Could be PrintTicket Can use property bag Example: Booklet Page re-order filter 2-up filter
24
Sample Filter Pipeline
25
Call To Action Understand Windows codenamed “Longhorn” Print Architecture Identify strategic devices to target the Metro Print Path Identify extension scenarios Understand the Windows Color System Review the “Metro” v.7 specification and provide feedback to prninfo@microsoft.com http://www.microsoft.com/whdc/device/print/metro.mspx Start implementation with Beta 1! Convert GDI/DDI based drivers to MetroDrv drivers Explore the sample filters in Longhorn Beta 2 WDK Consider on-device rendering with a RIP implementation A reference implementation is planned for Longhorn Beta 2 tools
26
Additional Resources: Web Web resources WS-Devices Profile: http://msdn.microsoft.com/webservices/understanding/specs/defau lt.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 http://www.microsoft.com/whdc/device/print/default.mspx WHDC Still Imaging / WIA home page: http://www.microsoft.com/whdc/device/stillimage/default.mspx http://www.microsoft.com/whdc/device/stillimage/default.mspx Color Use Cases http://www.microsoft.com/whdc/device/display/color/WCS_cases. mspx http://www.microsoft.com/whdc/device/display/color/WCS_cases. mspx “Writing Effective Use Cases”, Alistair Cockburn, ISBN 0201702258
27
Additional Resources: Other E-mail For developer print questions: prninfo@microsoft.comprninfo@microsoft.com For developer scan questions: wiainfo@microsoft.comwiainfo@microsoft.com For developer color questions: mscolor@microsoft.commscolor@microsoft.com Developer kit references: SDK for Print Schema User Manual and Keywords: http://winfx.msdn.microsoft.com/library/en- us/printschema/PrintSchema/Overviews/PrintSchema_entry.asp http://winfx.msdn.microsoft.com/library/en- us/printschema/PrintSchema/Overviews/PrintSchema_entry.asp WDK for PT/PC interfaces: Reference\Printer Driver and Spooler Component Interfaces\Printer Driver Functions and Structures\Unidrv and Pscript Interfaces\Methods for Print Ticket Providers and Consumers WinFX Print System Object Documentation available in WinFX Beta 1 SDK
28
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.