Menu

Application Verifier break message

Invalid handle exception for current stack trace

Probable cause

This stop is generated when the function on the top of the stack passes an invalid handle to a system routine. Usually the kb command will reveal the value of the handle passed in the call stack. The handle will be one of the parameters of the call. Often it is the first parameter. A null handle value is one example of an invalid handle value. If the handle value appears to be valid, use the !htrace debugger extension to view the history of operations that involved the handle value. Sometimes a handle value that appears to be valid can be invalid if the handle is used after it was closed.

For example:

Copy Code
0:027> k
ChildEBP RetAddr
0765eb50 7c82ed53 ntdll!KiRaiseUserExceptionDispatcher+0x37
0765eb54 7c821144 ntdll!KiFastSystemCall+0x3
0765eb58 008f9cf0 ntdll!NtClose+0xc
0765eb68 77e6c1fe vfbasics!AVrfpNtClose+0x10
0765eb74 008f49c9 KERNEL32!CloseHandle+0x59
0765eb84 77c34a60 vfbasics!AVrfpCloseHandle+0x89
0765ebe4 761734a2 GDI32!GdiPlayPageEMF+0x186

0:027> !htrace b08

--------------------------------------
Handle = 0x00000b08 - *** BAD REFERENCE ***
Thread ID = 0x00000170, Process ID = 0x00000228

0x77e6c1fe: KERNEL32!CloseHandle+0x00000044
0x008f49c9: vfbasics!AVrfpCloseHandle+0x00000089
0x77c34a60: GDI32!GdiPlayPageEMF+0x00000186      <-------------------------- SECOND CLOSE
0x761734a2: localspl!SplLogWmiTraceEventExternal+0x00006f06
0x76151feb: localspl!SplResetPrinter+0x000096d4
0x76143faf: localspl!SplSetPrinterDataEx+0x00001a6e
0x76143b04: localspl!SplSetPrinterDataEx+0x000015c3
--------------------------------------
Handle = 0x00000b08 - CLOSE
Thread ID = 0x00000170, Process ID = 0x00000228

0x77e6c1fe: KERNEL32!CloseHandle+0x00000044
0x008f49c9: vfbasics!AVrfpCloseHandle+0x00000089
0x77c24bef: GDI32!SetWinMetaFileBits+0x00000923   <-------------------------------- FIRST CLOSE
0x77c38e55: GDI32!GdiDrawStream+0x00000d06
0x77c34a39: GDI32!GdiPlayPageEMF+0x0000015f
0x761734a2: localspl!SplLogWmiTraceEventExternal+0x00006f06

Information displayed by Application Verifier

Parameter 1 - Exception code.

Parameter 2 - Exception record. Use .exr to display it.

Parameter 3 - Context record. Use .cxr to display it.

Parameter 4 - Not used.

Additional information

Test Layer:�PrintDriver

Stop code:�0000D003

Severity:�Error

One-time error:�no

Non Continuable:�yes

Error report:�Break

Log to file:�yes

Create backtrace:�yes