Menu

#4 Printer reboots my machine

0.3.0
closed
Driver UI (4)
9
2012-09-14
2007-11-28
tomron
No

Hello!

I have installed the printer complete and successful.
If I want to print out something with emf printer, my computer get a reset. I could edit the preferences of the printer and the output path, but if I press the "save" button, my computer get a reset. 4 trys 3 times reset.

Have you had such a bug in the past? I have to say that I had installed 'very emf printer'... but I uninstalled both printers and reinstalled your emf printer... same result. This printer looks pretty nice at the screenshots and i would be glad to use it.

Could you help me with this problem?

Many thanks
Tom

Discussion

  • Francesco Montorsi

    Logged In: YES
    user_id=591038
    Originator: NO

    can you specify more details about your setup (Windows version and presence of service packs) ?

    Since I hit this bug myself sometimes in the past I'll make soon a new release which generates a debug log. Maybe that will help me to understand why the resets happens.

    It's very difficult to fix this bug since I don't know how to reproduce it on my machine in a deterministic way...

     
  • Francesco Montorsi

    Logged In: YES
    user_id=591038
    Originator: NO

    I can reproduce it trying to EMF-print a Google Maps page from Firefox.

    I've found that the bug happens just after DrvStartDoc.

     
  • Francesco Montorsi

    Logged In: YES
    user_id=591038
    Originator: NO

    I've found important info about this info. I'll post here some info as reminder to myself.

    First I've enabled FULL crash image-dump creation in Control Panel->System->Advanced->Boot and recover. Then with WinDbg I loaded the crash-dump (after trying to print a google maps page from FF) and found the following:

    kd> !analyze -v


    • *
    • Bugcheck Analysis *
    • *

    KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)
    This is a very common bugcheck. Usually the exception address pinpoints
    the driver/function that caused the problem. Always note this address
    as well as the link date of the driver/image that contains this address.
    Some common problems are exception code 0x80000003. This means a hard
    coded breakpoint or assertion was hit, but this system was booted
    /NODEBUG. This is not supposed to happen as developers should never have
    hardcoded breakpoints in retail code, but ...
    If this happens, make sure a debugger gets connected, and the
    system is booted /DEBUG. This will let us see why this breakpoint is
    happening.
    Arguments:
    Arg1: c0000005, The exception code that was not handled
    Arg2: 805360d4, The address that the exception occurred at
    Arg3: badb9548, Trap Frame
    Arg4: 00000000

    Debugging Details:

    * Kernel symbols are WRONG. Please fix symbols to do analysis.

    * Kernel symbols are WRONG. Please fix symbols to do analysis.

    MODULE_NAME: win32k

    FAULTING_MODULE: 804d7000 nt

    DEBUG_FLR_IMAGE_TIMESTAMP: 45f013f6

    EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - L'istruzione a "0x%08lx" ha fatto riferimento alla memoria a "0x%08lx". La memoria non poteva essere "%s".

    FAULTING_IP:
    nt!memmove+c4
    805360d4 8807 mov byte ptr [edi],al

    TRAP_FRAME: badb9548 -- (.trap ffffffffbadb9548)
    ErrCode = 00000002
    eax=00000000 ebx=0000022b ecx=00000011 edx=00000001 esi=00f7bceb edi=0000022b
    eip=805360d4 esp=badb95bc ebp=badb95c4 iopl=0 nv up ei pl nz na po nc
    cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010202
    nt!memmove+0xc4:
    805360d4 8807 mov byte ptr [edi],al ds:0023:0000022b=??
    Resetting default scope

    DEFAULT_BUCKET_ID: WRONG_SYMBOLS

    BUGCHECK_STR: 0x8E

    LAST_CONTROL_TRANSFER: from 804fcb3f to 804f8aef

    STACK_TEXT:
    WARNING: Stack unwind information not available. Following frames may be wrong.
    badb9110 804fcb3f 0000008e c0000005 805360d4 nt!KeBugCheckEx+0x1b
    badb94d8 8053d471 badb94f4 00000000 badb9548 nt!KeRaiseUserException+0xc29
    badb9554 8051caef 85f1aed8 85f8e830 00f7cfff nt!Kei386EoiHelper+0x1d9
    badb95c4 bf84b82b 0000022b 00f7bceb 00000012 nt!MmTrimAllSystemPagableMemory+0x71f7
    badb95e8 bf839e00 00000006 badb9954 bf839bcf win32k!EngUnmapFontFileFD+0x11478
    badb97fc bf864078 e3cb5018 00000000 badb9828 win32k!EngCopyBits+0x231
    badb9a40 bf8a3030 badb99a4 00000000 00000002 win32k!EngStretchBlt+0x76d
    badb9ae0 bf8a2e21 e3cb5018 e3e23d18 00000000 win32k!EngStretchBltROP+0x8e
    badb9bbc bf84704a 00000000 00000000 bf8a2fa2 win32k!XLATEOBJ_iXlate+0x2781
    badb9cf0 bf835c85 cf210c9c 000000b9 0000009f win32k!EngUnmapFontFileFD+0xcc97
    badb9d2c 8053ca28 cf210c9c 000000b9 0000009f win32k!EngCreateBitmap+0x5f35
    badb9ddc 805411c2 f7311b85 86147708 00000000 nt!KeReleaseInStackQueuedSpinLockFromDpcLevel+0xb14
    badb9e08 7c9111a7 76f20000 00000001 00000000 nt!KiDispatchInterrupt+0x5a2
    badb9e30 7c928e94 00dbfc54 7c928f87 7ffd4000 ntdll!LdrInitializeThunk+0x29
    badb9e38 7c928f87 7ffd4000 7ffd5000 00000000 ntdll!CsrNewThread+0x1a
    badb9e7c 7c91e591 7c929079 000000fc 7ffd5000 ntdll!CsrNewThread+0x10d
    badb9e80 7c929079 000000fc 7ffd5000 00dbfd1c ntdll!ZwSetEventBoostPriority+0xc
    badb9e90 7c91110a 7c98c0d8 7c928e74 7c91e8c4 ntdll!RtlpUnWaitCriticalSection+0x22
    badb9e98 7c928e74 7c91e8c4 7c928dfa 00dbfd30 ntdll!RtlLeaveCriticalSection+0x1d
    badb9e9c 7c91e8c4 7c928dfa 00dbfd30 00000002 ntdll!RtlUnicodeStringToInteger+0x213
    badb9ea0 7c928dfa 00dbfd30 00000002 00a220e0 ntdll!ZwTestAlert+0xc
    badb9f10 7c928dfa 7c91d625 7c91eacf 00dbfd30 ntdll!RtlUnicodeStringToInteger+0x199
    badb9f14 7c91d625 7c91eacf 00dbfd30 00000001 ntdll!RtlUnicodeStringToInteger+0x199
    badb9f18 7c91eacf 00dbfd30 00000001 00010017 ntdll!ZwContinue+0xc
    badb9f5c 7c835148 00dbfea4 00dbfde4 00000040 ntdll!KiUserApcDispatcher+0xf
    badb9f7c 7c8351f2 ffffffc4 0072006f 00200061 kernel32!GetTimeZoneInformation+0x89
    00000000 00000000 00000000 00000000 00000000 kernel32!GetTimeZoneInformation+0x133

    STACK_COMMAND: kb

    FOLLOWUP_IP:
    win32k!EngUnmapFontFileFD+11478
    bf84b82b 83c40c add esp,0Ch

    SYMBOL_STACK_INDEX: 4

    SYMBOL_NAME: win32k!EngUnmapFontFileFD+11478

    FOLLOWUP_NAME: MachineOwner

    IMAGE_NAME: win32k.sys

    BUCKET_ID: WRONG_SYMBOLS

    Followup: MachineOwner

    so the problem is in EngUnmapFontFileFD; I'll investigate even deeper soon.

     
  • Francesco Montorsi

    Logged In: YES
    user_id=591038
    Originator: NO

    I've found another important thing: also PosterPrinter suffers from this same problem.
    It could be related to the fact he driver does not provide the DrvLoadFontFile.

     
  • Francesco Montorsi

    Logged In: YES
    user_id=591038
    Originator: NO

    yet another update: the previous post of WinDbg analysis is wrong as the symbol path was not correct.

    Here is the correct one:

    kd> !analyze -v


    • *
    • Bugcheck Analysis *
    • *

    KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)
    This is a very common bugcheck. Usually the exception address pinpoints
    the driver/function that caused the problem. Always note this address
    as well as the link date of the driver/image that contains this address.
    Some common problems are exception code 0x80000003. This means a hard
    coded breakpoint or assertion was hit, but this system was booted
    /NODEBUG. This is not supposed to happen as developers should never have
    hardcoded breakpoints in retail code, but ...
    If this happens, make sure a debugger gets connected, and the
    system is booted /DEBUG. This will let us see why this breakpoint is
    happening.
    Arguments:
    Arg1: c0000005, The exception code that was not handled
    Arg2: 805360d4, The address that the exception occurred at
    Arg3: b78b4548, Trap Frame
    Arg4: 00000000

    Debugging Details:

    EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - L'istruzione a "0x%08lx" ha fatto riferimento alla memoria a "0x%08lx". La memoria non poteva essere "%s".

    FAULTING_IP:
    nt!memmove+c4
    805360d4 8807 mov byte ptr [edi],al

    TRAP_FRAME: b78b4548 -- (.trap ffffffffb78b4548)
    ErrCode = 00000002
    eax=00000000 ebx=00000117 ecx=00000008 edx=00000000 esi=00fdef33 edi=00000117
    eip=805360d4 esp=b78b45bc ebp=b78b45c4 iopl=0 nv up ei pl zr na pe nc
    cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246
    nt!memmove+0xc4:
    805360d4 8807 mov byte ptr [edi],al ds:0023:00000117=??
    Resetting default scope

    DEFAULT_BUCKET_ID: DRIVER_FAULT

    BUGCHECK_STR: 0x8E

    PROCESS_NAME: spoolsv.exe

    LAST_CONTROL_TRANSFER: from 804fcb3f to 804f8aef

    STACK_TEXT:
    b78b4110 804fcb3f 0000008e c0000005 805360d4 nt!KeBugCheckEx+0x1b
    b78b44d8 8053d471 b78b44f4 00000000 b78b4548 nt!KiDispatchException+0x3b1
    b78b4540 8053d422 b78b45c4 805360d4 badb0d00 nt!CommonDispatchException+0x4d
    b78b4554 8051caef 85e1f238 84fe4a50 00fdffff nt!Kei386EoiHelper+0x18a
    b78b45c4 bf84b82b 00000117 00fdef33 00000009 nt!MiInsertVad+0x23b
    b78b45e8 bf839e00 00000003 b78b4954 bf839bcf win32k!vSrcCopyS24D24Identity+0x56
    b78b47fc bf864078 e2a59d10 00000000 b78b4828 win32k!EngCopyBits+0x51a
    b78b4a40 bf8a3030 b78b49a4 00000000 00000002 win32k!EngStretchBlt+0xd02
    b78b4ae0 bf8a2e21 e2a59d10 e4a1ca10 00000000 win32k!EngStretchBltROP+0x3a9
    b78b4bbc bf84704a 00000000 00000000 bf8a2fa2 win32k!BLTRECORD::bStretch+0x41b
    b78b4cf0 bf835c85 0221100b 0000005d 00000058 win32k!GreStretchBltInternal+0x632
    b78b4d2c 8053ca28 0221100b 0000005d 00000058 win32k!GreStretchBlt+0x30
    b78b4d2c 7c91eb94 0221100b 0000005d 00000058 nt!KiFastCallEntry+0xf8
    WARNING: Frame IP not in any known module. Following frames may be wrong.
    0148f26c 00000000 00000000 00000000 00000000 0x7c91eb94

    STACK_COMMAND: kb

    FOLLOWUP_IP:
    win32k!vSrcCopyS24D24Identity+56
    bf84b82b 83c40c add esp,0Ch

    SYMBOL_STACK_INDEX: 5

    FOLLOWUP_NAME: MachineOwner

    MODULE_NAME: win32k

    IMAGE_NAME: win32k.sys

    DEBUG_FLR_IMAGE_TIMESTAMP: 45f013f6

    SYMBOL_NAME: win32k!vSrcCopyS24D24Identity+56

    FAILURE_BUCKET_ID: 0x8E_win32k!vSrcCopyS24D24Identity+56

    BUCKET_ID: 0x8E_win32k!vSrcCopyS24D24Identity+56

    Followup: MachineOwner

     
  • Nobody/Anonymous

    Logged In: NO

    I have the same problem

     
  • Thomas

    Thomas - 2008-07-16

    Logged In: YES
    user_id=2149825
    Originator: NO

    I experience the same (tough) reset when trying to print EMF, no matter what I print.
    After reboot, the "save file" dialog reappears, but does not bring out a file to save when clicking. The predefined file name appearing in the respective input box is still "%document% %page%" like in default, though I changed it before.
    In addition, the error report windows wants to send after reboot is broken. Maybe this is another hint.
    System: WinXP SP2 EN

     
  • Thomas

    Thomas - 2008-07-16

    Logged In: YES
    user_id=2149825
    Originator: NO

    Yet another breakdown:
    Tried to print in JPG now - crashed again.
    The crashes are hard enough to make my RAID controller gasp for some seconds when booting up again.
    Instead of the printed image, a file appears called "EmfVirtualPrinterPort". Maybe this is a result of setting the default save location to that folder.
    Board: Asus M2N-E with on-board NVidia NForce SATA RAID controller (RAID1, 2x250GB).

     
  • Francesco Montorsi

    This bug has been fixed in the last SVN commit. If you encounter it again in EmfPrinter 0.3.1 (soon to be released) please reopen it.

    I was told to add -DUSERMODE_DRIVER define in the sources files and indeed its seems to fix this problem (even if the driver cannot be a kernel driver, it seems win32 recognized it as kernel driver without that define!). Google maps pages still don't show up in the generated EMF however. But at least now the driver doesn't crash.

     

Log in to post a comment.