Menu

Application Verifier break message

Leaked PrintTicket provider handle detected

Probable cause

An open PrintTicket provider handle was detected when the thread exited. The creating routine might not have called PTCloseProvider() to close it prior to exiting.

Troubleshooting steps

The sample debugger output below illustrates the following troubleshooting steps:

  • Determine the thread that opened the PrintTicket provider handle by using the second parameter of this verifier stop to provide the stack trace.

  • Dump the stack trace using the dps command in the debugger.

  • Find the first non-prntvpt and non-vfPrint module name that called vfPrint!VfPTOpenProvider or vfPrint!VfPTOpenProviderEx - this typically is the 4th or the 6th stack frame in the list.

Copy Code
=======================================
VERIFIER STOP 0000A012 : pid 0xD68: Leaked PrintTicket provider handle detected

        03320FE8 : PrintTicket provider handle being leaked.
        0312FF48 : Initialization stack trace. Use dps to dump the stack trace if it is not NULL.
        00000CC0 : Thread id of the thread that opened the handle.
        00000000 : Not used.
=======================================

0:000> dps 0312FF48
0312ff48  64ab3db1 vfprint!CItemTracker<HPTPROVIDER__ *>::Init+0x39 
0312ff4c  004154fe Test!LeakPrintTicketProviderHandle+0x4e 
0312ff50  004119f1 Test!wmain+0x201 
0312ff54  00416936 Test!__tmainCRTStartup+0x1a6 
0312ff58  0041677d Test!wmainCRTStartup+0xd 
0312ff5c  76413833 KERNEL32!BaseThreadInitThunk+0xe 
0312ff60  775fa9bd ntdll!_RtlUserThreadStart+0x23 

Information displayed by Application Verifier

Parameter 1�-�PrintTicket provider handle being leaked.

Parameter 2�-�Initialization stack trace. Use dps to dump the stack trace if it is not NULL.

Parameter 3�-�Thread id of the thread that opened the handle.

Parameter 4�-�Not used.

Additional information

Test Layer:�PrintAPI

Stop code:�0000A012

Severity:�Error

One-time error:�no

Error report:�Break

Log to file:�yes

Create backtrace:�yes