Print Verifier Ashwin Needamangala Senior Test Development Lead Documents and Printing Team

Slides:



Advertisements
Similar presentations
Testing And Tools For Print And Imaging Drivers
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Operating System Security : David Phillips A Study of Windows Rootkits.
Randy Williams, MOSS MVP Senior Consultant Synergy Corporate Technologies.
Printer Driver Development in Windows 7
V0.01 © 2009 Research In Motion Limited Introduction to Java Application Development for the BlackBerry Smartphone Trainer name Date.
MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 12: Network Printing and Offline Files.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Certification Test Tool Update Toby Nixon Program Manager Microsoft Corporation.
Amit Chopra APP209 Introducing “Orcas” Huh ? What’s “Orcas”?
A+ Guide to Software, 4e Chapter 11 Supporting Printers and Scanners.
Print Driver Testing Tools Ashwin Needamangala Senior Test Development Lead Documents and Printing Team
Created by the Community for the Community Building a RFID solution in BTS 09.
Developing XPSDrv Print Drivers
Filter-based Print Drivers: Overview. Outline MetroDrv Architecture and Data Flow Filter Pipeline Implementation MetroDrv Filter Development Discussion.
Best Practices for Developing Printer Drivers Justin Hutchings Program Manager Microsoft Corporation Shawn Maloney Program Manager Microsoft Corporation.
Printer Installation and Driver Management Shawn Maloney Program Manager WEX DOX Device Interfaces
Printing Terminology. Requirements for Network Printing At least one computer to operate as the print server Sufficient RAM to process documents Sufficient.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
XPSDrv Best practices using Print Verifier
1 Module 17 Printing from Windows NT. 2  Overview Windows NT Printing Process Printing from MS-DOS-based Applications Windows NT Printing Components.
Guide to MCSE , Second Edition, Enhanced1 Objectives Understand Windows XP print terminology and architecture Work with the Windows XP print subsystem.
Windows Server 2008 Chapter 6 Last Update
Print Driver And XPSDrv Testing In Windows Vista
New Document Lifecycle Opportunities N. Gregg Brown Lead Program Manager Digital Documents microsoft.com Microsoft Corporation.
Driver Verifier Advancements In Windows 7 Daniel Mihai Principal Software Design Engineer Windows Engineering Tools.
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
ESB Guidance 2.0 Kevin Gock
Debugging Print And Imaging Drivers. Print driver team philosophy on driver quality There are tools to detect violations Wrongful development assumptions.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Module 14: Configuring Print Resources and Printing Pools.
June 2013 Profile management v5.0 Excalibur - XenDesktop 7 Mick Glover Worldwide Support Readiness.
Advances in Windows Printing Daniel Emerson Program Manager Digital Documents Platform and Solutions Microsoft Corporation.
Chapter 6 Configuring Windows Server 2008 Printing
IOS110 Introduction to Operating Systems using Windows Session 9 1.
STAR CBT Tryout Setting Up Your Computer Systems for the STAR CBT Tryout for Technical Coordinators J.
Basic Developer Knowledge That Every SharePoint Admin Must Have Randy Williams, MVP MOSS Synergy Corporate Technologies
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Core Printer Driver Improvements
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
XPS Rasterization Service in Windows 7
Compatibility and Interoperability Requirements
Mobile Broadband Driver Development for Windows 7
Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking
Enhanced Storage Architecture
This is the main tracing and diagnostics presentation. Very important that this be practical and useful information. IT Pro audience is very.
Microsoft Management Seminar Series SMS 2003 Change Management.
Network Location Awareness Vision And Scenarios Tracey Yao Program Manager Windows Wireless Networking microsoft.com Microsoft Corporation.
Extensible Hardware Management Using WS-management and IPMI Steve Menzies Technical Lead Management Infrastructure microsoft.com Microsoft Corporation.
Page 1 Printing & Terminal Services Lecture 8 Hassan Shuja 11/16/2004.
System/SDWG Update Management Council Face-to-Face Flagstaff, AZ August 22-23, 2011 Sean Hardman.
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.
Eliminate Team Build Headaches with Unit Tests, WiX and Virtualization Benjamin Day
Hands-On Microsoft Windows Server 2008 Chapter 6 Configuring Windows Server 2008 Printing.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
Exploreengage elevate explore engage elevate Presented By: Laura Murphy, Turnkey Technologies.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
INTRODUCTION CHARLES MUIRURI
Configuration & Registry Microservice Deep Dive
Crash Dump Analysis - Santosh Kumar Singh.
CLR MD A New Swiss Army Knife tool for Advanced Debugging
1Y0-203 Dumps PDF Are You Worried About Citrix XenApp and XenDesktop 7.15 Administration 1y0-203 dumps1y0-203 braindumps1y0-203 study material1y0-203 dumps.
Made by Aistė Augustinaitė Software Engineering 3 group
Microsoft Build /14/2019 8:42 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Chapter 11 Supporting Printers and Scanners
Student: Popa Andrei-Sebastian
2N® Access Commander Easy to use by non-professionals.
Presentation transcript:

Print Verifier Ashwin Needamangala Senior Test Development Lead Documents and Printing Team

Agenda Introduction to Print Verifier Using Print Verifier Setup and Configuration Demonstration Usage Recommendations Advanced Features Print Verifier Fault Detection Future Directions Call to Action

Driver Quality Challenges Print driver problems difficult to troubleshoot No print subsystem resource tracking Leaking print resources Using print resources in unsafe manner No print-specific tools that allow extended runtime checks Contracts between XPS filter and the Operating System (OS) Contracts between GDI driver and the OS Contracts between applications and the OS

Introduction to Print Verifier Designed to address many of the challenges Runtime verification tool Implemented as a DLL, injected early in each process Designed to catch violators in the act Flags errors via debugger breaks Supports both XPSDrv and GDI drivers Works per process Hooks the interfaces between 3 rd party code and OS code Ships as part of Application Verifier Available on microsoft.commicrosoft.com Well documented

High Level Architecture ApplicationsApplications Core Print Driver (unidrv, pscript, XPSDrv) Plug-in/XPSDrv Filter Spooler APIs Provided by: Microsoft ISV OEM Print Verifier (PrintAPI layer) Print Verifier (PrintDriver layer)

Print Verifier Philosophy 100% certainty when issuing a stop When in doubt, don’t stop in the debugger Print Verifier design is suitable for Windows Logo Kit testing Enabled in the next release of the Windows Logo Kit

Using Print Verifier Typical Workflow Install and enable Print Verifier for a process (for example, PrintFilterPipelineSvc.exe) Restart the process and start testing Driver violates an invariant at runtime For instance, over-releases an XPS filter interface pointer or uses invalid print ticket etc. Print Verifier immediately issues a debugger break (“verifier stop”) Look up documentation for the stop code and identify the bug

Setup and Configuration Part of Application Verifier MSI package Easy, scriptable and configurable install Once installed, can be enabled for each desired process For all verified processes, the presence of a debugger is required Known limitations System processes (csrss, lsass) not supported Application and Print Verifiers designed to verify native applications, not.NET applications It works, but provides limited value

Setup and Configuration

Recommended Settings Enable Basics, Print Driver and Print API layers for Spoolsv.exe (core print spooler service) PrintFilterPipelineSvc.exe (filter pipeline process) Splwow64.exe (thunk process for WoW64 printing) All test.EXEs you have

Print Verifier Demo

Additional Features Individual layers under “Printing” can be disabled Individual stops can be downgraded or disabled Print Ticket verification (PTConform) can be turned off All of the above are available from both App Verifier UI and command line

Additional Features Fault injection Available in both Print API and Print Driver layers FaultRate property controls rate of fault injection Logging Log is generated when a stop occurs during the verification of a driver Command line support to export logs to XML App Verifier UI has a link to Log Viewer

Print Verifier Fault Detection Print resource tracking Printer handles, printer change notification handles, PRINTER_NOTIFY_INFO, spool file handles, HPTPROVIDER handles Will issue a stop if the verified code is: Leaking any of the above print resources Using already closed handles Using unknown or uninitialized handles Using handles in a thread-unsafe manner

Print Verifier Fault Detection Invalid PrintTicket or PrintCapabilities objects crossing interface boundaries Application passing bad PrintTicket Driver/filter returning bad PrintTicket Incorrect interface reference counting XPS filters, plug-ins XPS filter making illegal call to the pipeline Example: Two IPrintWriteStream::Close calls Incorrect implementation of AsyncNotification interfaces

Print Verifier Fault Detection XPS filter changing/removing common property from the property bag XPS filter calling pipeline interface out of order Drivers/Filters causing structured exceptions Changing the security context in plug-in Bad DEVMODE buffer passed Illegal API call made in DllMain Driver/Filter calling ExitThread/TerminateThread Slow expensive operations performed by UI threads

Future Improvements Considering support for Print processors Port monitors Language monitors Monolithic drivers Verifying drivers accessing registry

Call To Action Get familiar with Application Verifier and Print Verifier Try out Print Verifier against your XPSDrv filters and GDI mini-drivers Integrate Print Verifier into your development and test environments Visit the Print Verifier blog Post questions to Print Verifier newsgroup Feature requests more than welcome!

Additional Resources Print Verifier Blog: Newsgroup on Microsoft.public.win32.programmer.tools Tools Download Application Verifier: Application Verifier Documentation: Print Devices on the WHDC Web Site: XPS: and

Related Sessions SessionDay / Time Best Practices for Developing Printer DriversMon. 8:30-9:30 and Tues. 8:30-9:30 Printer Installation and Driver ManagementMon. 9:45-10:45 and Tues. 2:45-3:45 Printer Driver Testing ToolsTues. 9:45-10:45 and Wed. 8:30-9:30 Printer Driver Testing and the Windows Logo KitTues. 1:30-2:30 XPS Rasterization ServicesMon. 1:30-2:30 and Tues. 5:15-6:15 Printer Driver Development in Windows 7Mon and Tues. 4-5 Discussion: XPS Driver Development in Windows 7Mon. 4-5 and Wed. 1:30-2:30