What is PrintVerifier?

 

PrintVerifier is a runtime verification engine for monitoring interaction between 3rd party components and the print subsystem. Huh? Plain English please?

  • How do I detect printer handle and general printer resource leaks in my application?
  • How do I detect incorrect usage of Win32 printing APIs in my application?
  • How do I detect incorrect usage of PrintTicket APIs in my application?
  • How do I detect general printing related bugs in my application?
  • How do I detect incorrect reference counting in my printer driver?
  • How do I detect incorrect implementation of printing related COM methods in my printer driver?
  • How do I detect incorrect PrintTicket/PrintCapabilities implementation in my printer driver?
  • How do I detect bugs in my XPSDrv filter drivers?
  • How do I detect all of the above at runtime?

The answer to all of the above questions and more is PrintVerifier!

PrintVerifier is implemented as an Application Verifier provider. It consists of two verification layers, the PrintAPI layer and the PrintDriver layer. As you might have guessed, the PrintAPI layer monitors the boundary between applications and the print subsystem while the PrintDriver layer monitors the boundary between the core printer driver and 3rd party plug-ins.

Enabling PrintVerifier for your applications and the print subsystem gives you all of the verification capabilities listed above for free. You can find details on how to enable PrintVerifier or any other test that is part of Application Verifier here.