gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
阅读:6984回复:28

急急急,求助!请高人帮忙看看,拜托!(已经自己解决,多谢各位)

楼主#
更多 发布于:2007-07-11 19:00
这是我写一个虚拟打印机的驱动程序;是参照DDK中的列子写的,
在使用的过程中发现一下问题:

在有些windows机器打印会蓝屏,而有些windows机器就不会蓝屏;
有些机器一开始不会蓝屏,过一段时间就又会打印蓝屏了;不知道是什么原因????

经过使用WinDBG调试,是在调用EngBitBlt函数的时候导致了蓝屏,不知道是什么原因。

蓝屏显示错误:0x00000007
UNEXPECTED_KERNEL_MODE_TRAP

自己调试了很长时间没有找到原因, 请高人帮忙看看!急急急

附件中是虚拟打印驱动程序源码!!
(已经解决了,是DEVINFO结构参数设置不对,cxDither cyDither成员不能为0)
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-30 14:11
已经解决了,是DEVINFO结构参数设置不对,cxDither cyDither成员不能为0,赋值为16即可;

还是要多谢各位同仁的热心回答。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-24 11:05
难得没有人能回答我嘛?自己再顶一下。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-19 23:05
最新调试和测试结果,这个打印驱动蓝屏问题原来windows的KB925902补丁有关;只要升级一下windows的KB935843补丁就不会蓝屏了;但是又出现了新的问题:

升级KB935843补丁前,打印黑白图象时候所产生的抖动效果没有了;可以比较打印测试前后的效果对比:
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-19 16:32
最新发现,卸载掉KB925902就不会蓝屏了,这是什么原因啊;驱动程序到底那里有问题啊?
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-19 10:37
我继续测试了机器,发现:
**在安装windows2000+SP4没有使用windows在线更新的机器上,可以正常打印;不会蓝屏;
 当我使用windows的在线更新,将windows2000的所有更新安装后,使用虚拟打印机打印的时候就会蓝屏。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-07-19 08:52
先多谢zhaock的答复,下面是我按照你说的方法,设置了symbol path为srv*c:\windows\symbols*http://msdl.microsoft.com/download/symbols后,!analyze -v的分析结果:


Microsoft (R) Windows Debugger  Version 6.6.0007.5
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINNT\MEMORY.DMP]
Kernel Complete Dump File: Full address space is available

************************************************************
WARNING: Dump file has been truncated.  Data may be missing.
************************************************************
Symbol search path is: SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 2000 Kernel Version 2195 (Service Pack 4) UP Free x86 compatible
Product: Server
Kernel base = 0x80400000 PsLoadedModuleList = 0x80481580
Debug session time: Wed Jul 18 18:05:24.140 2007 (GMT+8)
System Uptime: 0 days 0:06:33.890
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
.......................................................................................
Loading unloaded module list
.............
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 7F, {0, 0, 0, 0}

Probably caused by : win32k.sys ( win32k!UMPDDrvDitherColor+7b )

Followup: MachineOwner
---------

kd> .reload
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
.......................................................................................
Loading unloaded module list
.............
kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault).  The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
        use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
        use .trap on that value
Else
        .trap on the appropriate frame will show where the trap was taken
        (on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000000, EXCEPTION_DIVIDED_BY_ZERO
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


BUGCHECK_STR:  0x7f_0

TRAP_FRAME:  f334ef10 -- (.trap fffffffff334ef10)
ErrCode = 00000000
eax=ffffffff ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=00000020
eip=a01355e4 esp=f334ef84 ebp=f334f064 iopl=0         nv up ei pl zr na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010246
win32k!UMPDDrvDitherColor+0x7b:
a01355e4 f7f6            div     eax,esi
Resetting default scope

DEFAULT_BUCKET_ID:  INTEL_CPU_MICROCODE_ZERO

PROCESS_NAME:  spoolsv.exe

LAST_CONTROL_TRANSFER:  from 804c483d to 8042a86d

STACK_TEXT:  
f334eea4 804c483d 0000007f 00000020 00000000 nt!KeBugCheck+0xf
f334ef04 80465ca5 f334ef10 f334f2b4 f334ef70 nt!Ki386CheckDivideByZeroTrap+0x3f
f334ef04 a01355e4 f334ef10 f334f2b4 f334ef70 nt!KiTrap00+0x6d
f334f064 a00243c6 e4a27008 00000002 002b59ff win32k!UMPDDrvDitherColor+0x7b
f334f0f0 a00641fa 00000000 e491c424 a0064715 win32k!bGetRealizedBrush+0x293
f334f104 a0011316 e491c424 00000000 00000000 win32k!pvGetEngRbrush+0x1a
f334f160 a00fdf0e e4a27008 00000000 00000000 win32k!EngBitBlt+0x18f
f334f280 80465024 e491d2b8 00000000 00000000 win32k!NtGdiEngBitBlt+0x35b
f334f280 77f72477 e491d2b8 00000000 00000000 nt!KiSystemService+0xc4
0148e5b4 77f672f9 01510000 00000000 00000000 GDI32!NtGdiEngBitBlt+0xb
0148e5fc 77e218db 0148ee60 0148e618 00000004 GDI32!GdiPrinterThunk+0x259
0148ee50 77f91baf 0148ee60 0000003c 0000003c USER32!__ClientPrinterThunk+0x2d
0148ee50 80431398 0148ee60 0000003c 0000003c ntdll!KiUserCallbackDispatcher+0x13
f334f574 8042f520 f334f608 f334f600 f334f830 nt!KiCallUserMode+0x4
f334f5d8 a0092d29 0000005a f334f708 0000003c nt!KeUserModeCallback+0xa6
f334f624 a0092dec 0000005a f334f708 0000003c win32k!pppUserModeCallback+0x3f
f334f63c a0136330 f334f708 0000003c f334f744 win32k!ClientPrinterThunk+0x40
f334f748 a00d1e06 e491d2b8 00000000 00000000 win32k!UMPDDrvBitBlt+0x160
f334f788 a00c1ccb e491d2b8 f334f82c e491c424 win32k!EngPaint+0x61
f334f8f8 a003f13d e491d2b8 f334fa70 f334f97c win32k!EngFillPath+0x1a9
f334f948 a003edbe 60008430 f334fa44 e491d2a8 win32k!EPATHOBJ::bSimpleFill+0x1a4
f334fa50 a003f247 00000d0d e491c070 f334fc88 win32k!EPATHOBJ::bStrokeAndOrFill+0x3d0
f334fc98 a0026fda 03210348 f334fcd0 f334fd2c win32k!GrePolyPolygonInternal+0xd0
f334fd48 80465024 03210348 0148eee0 0148eed0 win32k!NtGdiPolyPolyDraw+0x204
f334fd48 77f72105 03210348 0148eee0 0148eed0 nt!KiSystemService+0xc4
0148eec0 77f6e7c2 03210348 0148eee0 00000005 GDI32!NtGdiPolyPolyDraw+0xb
0148f2e4 77f690be 03210348 000c5750 00000004 GDI32!MRBP16::bPlay+0xa7
0148f360 77f68e90 03210348 000c5750 019927a8 GDI32!PlayEnhMetaFileRecord+0x37
0148f3d8 77f687cb 03210348 00002788 00000000 GDI32!bInternalPlayEMF+0x688
0148f3f0 77f64d98 03210348 0a460345 000beb68 GDI32!PlayEnhMetaFile+0x33
0148f490 77f64ffe 000c4f38 00000000 00000000 GDI32!InternalGdiPlayPageEMF+0x228
0148f4f8 786d309b 000c4f38 00000000 000c4f74 GDI32!GdiEndPageEMF+0xcd
0148f530 786d3201 000c4f38 03210348 00000001 localspl!PrintOneSideForwardEMF+0x13b
0148f574 786d3a45 000c4f38 00000001 00000001 localspl!PrintForwardEMF+0xa6
0148f5ac 786d411e 000c4f38 03210348 00000000 localspl!PrintEMFSingleCopy+0xd9
0148f6e8 786d2032 00cbe680 0148f710 786c1aac localspl!PrintEMFJob+0x518
0148f6f4 786c1aac 00cbe680 0148f710 00cb6de8 localspl!PrintDocumentOnPrintProcessor+0x3a
0148fd68 786c15cb 00000000 0148ff94 00000010 localspl!PrintDocumentThruPrintProcessor+0x19f
0148ffb4 77e6b3bc 00000000 00000010 0113fc50 localspl!PortThread+0x24a
0148ffec 00000000 786c137f 00cb6de8 00000000 KERNEL32!BaseThreadStart+0x52


STACK_COMMAND:  kb

FOLLOWUP_IP:
win32k!UMPDDrvDitherColor+7b
a01355e4 f7f6            div     eax,esi

SYMBOL_STACK_INDEX:  3

SYMBOL_NAME:  win32k!UMPDDrvDitherColor+7b

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: win32k

IMAGE_NAME:  win32k.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  45ed063d

FAILURE_BUCKET_ID:  0x7f_0_win32k!UMPDDrvDitherColor+7b

BUCKET_ID:  0x7f_0_win32k!UMPDDrvDitherColor+7b

Followup: MachineOwner
---------
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2007-07-18 18:00
没有注意看,你贴了两组,只看到第二组了.第一组的b机器的dump信息比较多.但看上去还是有些问题,好象符号不完全对,你在symbol path设置一下srv*c:\windows\symbols*http://msdl.microsoft.com/download/symbols,不用装符号,连网,让windbg 自己到ms的网站上下symbols,肯定是对的.再把b机器的结果贴上来
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-07-18 17:07
符号表我已经安装了,就是从微软网站上下载的符号表安装包,一共安装以下几个符号表安装包:
Windows_2000_RTM_Symbols.exe
SP1SYM.exe
sp2sym.exe
sp2srp1sym_cn.exe
w2ksp3sym_cn.exe
w2ksp4sym_cn.exe
Windows2000-KB891861-x86-Symbols-CHS.EXE
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2007-07-18 15:30
windbg打开dump文件的时候,首先要安装对系统符号表,不然无法分析.安装好系统符号表,再贴上几个不同的结果来.
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-07-18 09:01
每种情况我都测试了多次;同一台机器结果一样;不同的机器!analyze -v分析的结果的都不一样;很奇怪;拜托,请大家看看。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-07-18 09:00
2。不安装Windows2000-KB891861-x86-Symbols-CHS.EXE符号表安装包,结果如下:
 机器A:

Microsoft (R) Windows Debugger  Version 6.6.0007.5
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINNT\MEMORY.DMP]
Kernel Complete Dump File: Full address space is available

************************************************************
WARNING: Dump file has been truncated.  Data may be missing.
************************************************************
Symbol search path is: C:\WINNT\Symbols
Executable search path is:
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x3ee6c002 for ntoskrnl.exe
Windows 2000 Kernel Version 2195 (Service Pack 4) UP Free x86 compatible
Product: Server
Kernel base = 0x80400000 PsLoadedModuleList = 0x80481580
Debug session time: Tue Jul 17 19:46:19.734 2007 (GMT+8)
System Uptime: 0 days 0:42:51.500
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x3ee6c002 for ntoskrnl.exe
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
.....................................................................................
Loading unloaded module list
...............*** WARNING: symbols timestamp is wrong 0x41e648e0 0x3ef31d0f for ntdll.dll

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 7F, {0, 0, 0, 0}

Probably caused by : ntoskrnl.exe ( nt!IopInvalidateRelationsInList+65 )

Followup: MachineOwner
---------

kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault).  The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
        use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
        use .trap on that value
Else
        .trap on the appropriate frame will show where the trap was taken
        (on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000000, EXCEPTION_DIVIDED_BY_ZERO
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


BUGCHECK_STR:  0x7f_0

DEFAULT_BUCKET_ID:  DRIVER_FAULT

LAST_CONTROL_TRANSFER:  from 00000000 to 8042a86d

STACK_TEXT:  
f30a3f04 00000000 00000000 00000000 00000000 nt!IopInvalidateRelationsInList+0x65


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!IopInvalidateRelationsInList+65
8042a86d c20400          ret     4

SYMBOL_STACK_INDEX:  0

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntoskrnl.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  45ec3c8f

SYMBOL_NAME:  nt!IopInvalidateRelationsInList+65

FAILURE_BUCKET_ID:  0x7f_0_nt!IopInvalidateRelationsInList+65

BUCKET_ID:  0x7f_0_nt!IopInvalidateRelationsInList+65

Followup: MachineOwner
---------

机器B:

Microsoft (R) Windows Debugger  Version 6.6.0007.5
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINNT\MEMORY.DMP]
Kernel Complete Dump File: Full address space is available

Symbol search path is: C:\WINNT\Symbols
Executable search path is:
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x3ee650b3 for ntkrnlmp.exe
Windows 2000 Kernel Version 2195 (Service Pack 4) UP Free x86 compatible
Product: Server, suite: Enterprise
Kernel base = 0x80400000 PsLoadedModuleList = 0x80485b80
Debug session time: Tue Jul 17 19:19:19.361 2007 (GMT+8)
System Uptime: 0 days 1:32:41.171
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x3ee650b3 for ntkrnlmp.exe
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
................................................................
Loading unloaded module list
...........*** WARNING: symbols timestamp is wrong 0x41e648e0 0x3ef31d0f for ntdll.dll

ERROR: FindPlugIns 80070005
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 7F, {0, 0, 0, 0}

Probably caused by : ntkrnlmp.exe ( nt!KeDelayExecutionThread+1b5 )

Followup: MachineOwner
---------

kd> .reload
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x3ee650b3 for ntkrnlmp.exe
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
................................................................
Loading unloaded module list
...........*** WARNING: symbols timestamp is wrong 0x41e648e0 0x3ef31d0f for ntdll.dll

kd> !analyze -v
ERROR: FindPlugIns 80070005
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault).  The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
        use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
        use .trap on that value
Else
        .trap on the appropriate frame will show where the trap was taken
        (on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000000, EXCEPTION_DIVIDED_BY_ZERO
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


BUGCHECK_STR:  0x7f_0

DEFAULT_BUCKET_ID:  INTEL_CPU_MICROCODE_ZERO

PROCESS_NAME:  spoolsv.exe

LAST_CONTROL_TRANSFER:  from 8046902a to 8042be01

STACK_TEXT:  
f306df04 8046902a f306df10 f306e2b4 00000000 nt!KeDelayExecutionThread+0x1b5
f306df10 00000000 00000001 00010101 f306e270 nt!KiTrap0D+0x49e


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!KeDelayExecutionThread+1b5
8042be01 c20400          ret     4

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  nt!KeDelayExecutionThread+1b5

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntkrnlmp.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  45ec3c8f

FAILURE_BUCKET_ID:  0x7f_0_VRFK_nt!KeDelayExecutionThread+1b5

BUCKET_ID:  0x7f_0_VRFK_nt!KeDelayExecutionThread+1b5

Followup: MachineOwner
---------
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-07-18 08:59
昨天晚上调试结果如下:
   测试机器一共有两台机器会打印蓝屏,我分别标识为机器A和机器B,机器的OS为:windows 2000 Advance Server Service Pack4;重新安装了符号表,符号表安装包有以下几个:

 Windows_2000_RTM_Symbols.exe
SP1SYM.exe
sp2sym.exe
sp2srp1sym_cn.exe
w2ksp3sym_cn.exe
w2ksp4sym_cn.exe
Windows2000-KB891861-x86-Symbols-CHS.EXE

由于不确定Windows2000-KB891861-x86-Symbols-CHS.EXE符号表安装表是否要安装;因此我做了两种情况的测试:
1。安装Windows2000-KB891861-x86-Symbols-CHS.EXE符号表安装包,结果如下:
      机器A:
Microsoft (R) Windows Debugger  Version 6.6.0007.5
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINNT\MEMORY.DMP]
Kernel Complete Dump File: Full address space is available

************************************************************
WARNING: Dump file has been truncated.  Data may be missing.
************************************************************
Symbol search path is: C:\WINNT\Symbols
Executable search path is:
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x427b58bb for ntoskrnl.exe
Windows 2000 Kernel Version 2195 (Service Pack 4) UP Free x86 compatible
Product: Server
Kernel base = 0x80400000 PsLoadedModuleList = 0x80481580
Debug session time: Tue Jul 17 19:46:19.734 2007 (GMT+8)
System Uptime: 0 days 0:42:51.500
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x427b58bb for ntoskrnl.exe
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
.....................................................................................
Loading unloaded module list
...............
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 7F, {0, 0, 0, 0}

Probably caused by : ntoskrnl.exe ( nt!KeGetBugMessageText+5 )

Followup: MachineOwner
---------

kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault).  The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
        use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
        use .trap on that value
Else
        .trap on the appropriate frame will show where the trap was taken
        (on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000000, EXCEPTION_DIVIDED_BY_ZERO
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


BUGCHECK_STR:  0x7f_0

DEFAULT_BUCKET_ID:  INTEL_CPU_MICROCODE_ZERO

PROCESS_NAME:  spoolsv.exe

LAST_CONTROL_TRANSFER:  from 00000000 to 8042a86d

STACK_TEXT:  
f30a3f04 00000000 00000000 00000000 00000000 nt!KeGetBugMessageText+0x5


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!KeGetBugMessageText+5
8042a86d c20400          ret     4

SYMBOL_STACK_INDEX:  0

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntoskrnl.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  45ec3c8f

SYMBOL_NAME:  nt!KeGetBugMessageText+5

FAILURE_BUCKET_ID:  0x7f_0_nt!KeGetBugMessageText+5

BUCKET_ID:  0x7f_0_nt!KeGetBugMessageText+5

Followup: MachineOwner
---------
机器B:

Microsoft (R) Windows Debugger  Version 6.6.0007.5
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINNT\MEMORY.DMP]
Kernel Complete Dump File: Full address space is available

Symbol search path is: C:\WINNT\Symbols
Executable search path is:
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x427b58bb for ntkrnlmp.exe
Windows 2000 Kernel Version 2195 (Service Pack 4) UP Free x86 compatible
Product: Server, suite: Enterprise
Kernel base = 0x80400000 PsLoadedModuleList = 0x80485b80
Debug session time: Tue Jul 17 20:46:33.421 2007 (GMT+8)
System Uptime: 0 days 0:20:25.343
*** WARNING: symbols timestamp is wrong 0x45ec3c8f 0x427b58bb for ntkrnlmp.exe
Loading Kernel Symbols
.......................................................................................................................
Loading User Symbols
...............................................................
Loading unloaded module list
.........
ERROR: FindPlugIns 80070005
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 7F, {0, 0, 0, 0}

*** WARNING: symbols timestamp is wrong 0x45ed4dbc 0x425670f4 for GDI32.dll
*** WARNING: symbols timestamp is wrong 0x46236f7e 0x42a0669b for KERNEL32.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for mfprinter.DLL -
Probably caused by : win32k.sys ( win32k!BltLnkSrcCopyMsk8+74 )

Followup: MachineOwner
---------

kd> !analyze -v
ERROR: FindPlugIns 80070005
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault).  The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
        use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
        use .trap on that value
Else
        .trap on the appropriate frame will show where the trap was taken
        (on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000000, EXCEPTION_DIVIDED_BY_ZERO
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


BUGCHECK_STR:  0x7f_0

DEFAULT_BUCKET_ID:  INTEL_CPU_MICROCODE_ZERO

PROCESS_NAME:  spoolsv.exe

TRAP_FRAME:  f3bd4f10 -- (.trap fffffffff3bd4f10)
ErrCode = 00000000
eax=ffffffff ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=00000020
eip=a01355e4 esp=f3bd4f84 ebp=f3bd5064 iopl=0         nv up ei pl zr na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010246
win32k!BltLnkSrcCopyMsk8+0x74:
a01355e4 f7f6            div     eax,esi
Resetting default scope

LAST_CONTROL_TRANSFER:  from 804c9149 to 8042be01

STACK_TEXT:  
f3bd5064 a00243c6 e4771008 00000002 002b59ff win32k!BltLnkSrcCopyMsk8+0x74
f3bd50f0 a00641fa 00000000 e471fe04 a0064715 win32k!bGetRealizedBrush+0x38a
f3bd5280 80468389 e2dc96b8 00000000 00000000 win32k!EngRealizeBrush+0x513
f3bd5280 77f72477 e2dc96b8 00000000 00000000 nt!KiServiceExit+0x6e
00dce5b4 77f672f9 01010000 00000000 00000000 GDI32!MRBB::bInit+0xef
00dce648 77e764f9 0000020c 00000000 00000000 GDI32!IcmSaveDC+0x42
00dce6b4 78012d3d 0000020c 00dce6dc 0000003b KERNEL32!WriteFile+0x15d
00dceaf4 77e67ef0 00000000 00000004 78013026 MSVCRT!_write_lk+0xce
00dceb04 78013409 00281fb4 780130f8 00000004 KERNEL32!BaseDllInitializeMemoryManager+0x1f
00dceb0c 780130f8 00000004 780130cc 00000000 MSVCRT!_unlock_fhandle+0x21
00dceb44 78001199 00287098 00dceb90 7800f025 MSVCRT!_close+0x94
00dceb50 7800f025 0000001f 7800fe0e 7803a6f0 MSVCRT!_unlock+0x13
00dceb58 7800fe0e 7803a6f0 7800fe03 00dd8d3c MSVCRT!_unlock_file+0x22
00dceb90 00dd2fdd 7803a6f0 00dd8d24 00000001 MSVCRT!fclose+0x6f
00dceca0 00dd2219 00dd141c 00000001 00dcecfc mfprinter!DrvQueryDriverInfo+0x1410
00dcecb8 77f6720a 01010000 01010034 00000002 mfprinter!DrvQueryDriverInfo+0x64c
00dcef1c 00000000 000013a4 00000b54 00001371 GDI32!IcmSetSourceColorSpace+0x1ee


STACK_COMMAND:  .trap 0xfffffffff3bd4f10 ; kb

FOLLOWUP_IP:
win32k!BltLnkSrcCopyMsk8+74
a01355e4 f7f6            div     eax,esi

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  win32k!BltLnkSrcCopyMsk8+74

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: win32k

IMAGE_NAME:  win32k.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  45ed063d

FAILURE_BUCKET_ID:  0x7f_0_win32k!BltLnkSrcCopyMsk8+74

BUCKET_ID:  0x7f_0_win32k!BltLnkSrcCopyMsk8+74

Followup: MachineOwner
---------
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-07-17 12:08
好的,我今天晚上多测试几次;多收集几个DUMP文件分析一下。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2007-07-17 10:10
从你的!analyze -v的结果,看不出什么线索.你再生成几个dump文件,看看!analyze -v 是不是一样.
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
15楼#
发布于:2007-07-17 07:52
......
没有战争就没有进步 X3工作组 为您提供最好的军火
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-07-16 08:48
zhaock:
         由于我没有能实现双机调试;所以我按照你的第一种方法调试了;调试结果同前面的是一样的。

各位帮我看看吧;实在是没有办法了,拜托了。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-07-13 12:05
最近发现的现象;我的虚拟打印机是支持彩色打印输出的,在inc目录下的mfconfig.h文件中添加宏定义#define MFFUN_COLOR就可以了,重新编译后发现如下现象:

1。在有些机器上无论是彩色打印还是黑白打印都没有问题;而在有些机器上一开始打印没有问题,过一段时间后打印就会蓝屏。

2。在打印蓝屏的机器上,彩色打印不会有问题,而选择黑白打印就会蓝屏。

附件中的代码我更新了,现在支持彩色打印。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-07-12 15:25
我明天再试一下双机模式调试吧。
gosoft
驱动牛犊
驱动牛犊
  • 注册日期2003-03-02
  • 最后登录2007-07-30
  • 粉丝1
  • 关注0
  • 积分230分
  • 威望25点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-07-12 15:10
不好意思;刚才去查看了一下我同事的机器;他的机器就是“完全内存转储”的,转储文件为:%SystemRoot%\MEMORY.DMP;

蓝屏后我把他的文件拷贝到我的机器上后,然后使用winDBG中的File->Open Crash Dump... 打开;
然后再输入命令:!analyze -v, 结果就是我上面帖子贴出来的那些内容。

我的代码中:
BOOL APIENTRY DrvQueryDriverInfo(
    DWORD   dwMode,
    PVOID   pBuffer,
    DWORD   cbBuf,
    PDWORD  pcbNeeded
    )
{  
    switch (dwMode)
    {
    case DRVQUERY_USERMODE:        
        *pcbNeeded = sizeof(DWORD);
        if (pBuffer == NULL || cbBuf < sizeof(DWORD))
        {
            SetLastError(ERROR_INSUFFICIENT_BUFFER);
            return FALSE;
        }
        *((PDWORD) pBuffer) = TRUE;        
        return TRUE;

    default:
        SetLastError(ERROR_INVALID_PARAMETER);    
        return FALSE;
    }
}

我的代码是用户模式的,至于为什么蓝屏,确实在使用这个虚拟打印机打印的时候蓝屏的,其它时候没有这样的现象;用户模式驱动导致蓝屏,我也很疑惑。

如果你不介意的话,你可以用build编译一下;然后安装一下试试。
我也真的是无计可施了,只好劳驾您了!
上一页
游客

返回顶部