Menu

Application Verifier break message

Leaked PRINTER_NOTIFY_INFO detected.

Probable cause

An allocated PRINTER_NOTIFY_INFO object that had not been freed was detected when the program exited. Most likely, it needs to be freed by calling FreePrinterNotifyInfo() before exiting.

Troubleshooting steps

To troubleshoot this stop:

  • Determine the routine that called winspool to allocate the PRINTER_NOTIFY_INFO object on its behalf by using the second parameter of this verifier stop.

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

  • Find the first non-winspool and non-vfPrint module name that called vfPrint!VfHookFindNextPrinterChangeNotification. This routine is typically found in the 3rd stack frame.

For example:

Copy Code
=======================================
VERIFIER STOP 0000A002 : pid 0x158C: Leaked PPRINTER_NOTIFY_INFO detected

        0C697E90 : The pointer to the leaked PRINTER_NOTIFY_INFO.
        0295EF60 : Initialization stack trace. Use dps to dump it if it is not NULL.
        00000000 : Not used.
        00000000 : Not used.
=======================================
0:000> dps 0295EF60
0295ef60  0243505a vfPrint!CItemTracker(_PRINTER_NOTIFY_INFO *)::Init+0x6a
0295ef64  024347c0 vfPrint!VfHookFindNextPrinterChangeNotification+0x70
0295ef68  7433e2c5 PRINTUI!VDataNotify::svRefresh+0x4c   ------- this routine is suspected of not freeing the object
0295ef6c  7433d97b PRINTUI!VData::svNew+0x53

Information displayed by Application Verifier

Parameter 1�-�The pointer to the leaked PRINTER_NOTIFY_INFO object.

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

Parameter 3�-�Not used.

Parameter 4�-�Not used.

Additional information

Test Layer:�PrintAPI

Stop code:�0000A002

Severity:�Error

One-time error:�no

Error report:�Break

Log to file:�yes

Create backtrace:�yes