leavepeace
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2027回复:10

softice就自动跳出,启动时出现蓝屏

楼主#
更多 发布于:2003-05-13 11:06
在做pci驱动时,当一进入应用程序时,softice就自动跳出,显示
    ntoskrnl!  KeBugCheckEx
Break Due to keBugCheckEx(Unhandled kernel mode exception)
Error=50 (PAGE_FAULT_IN_MONPAGED_AREA)
P1=CCCCCCE9    P2=0     P3=EB83FB84    P4=0
 这种情况在驱动程序加了中断功能之后才出现的。另在机子从新启动时会出现蓝屏,显示:
  STOP:0x00000050 0xCCCCCCE9,0x00000000,0x8049AA92,0x000000)
  PAGE_FAULT_IN_NONPAGED_AREA
  Address 8049AA92 base at 80400000,DataStamp3d366b8b
  --ntoskrnl.exe
  Beginning  dump of  physical memory
  physical memory dump complete ..
不知道为什么会出现这种情况?如何解决?请高手指点。
zh_zh_y
驱动牛犊
驱动牛犊
  • 注册日期2001-10-19
  • 最后登录2005-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-13 11:59
一般这种情况是,在你自己的驱动程序的中断服务例程中使用了分页内存,需要仔细检查在DPC以上级别的例程中是否有使用分页内存的情况。
如果有使用分页内存的情况,100%会出现这种情况。^_^
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-13 16:01
这是在非分野内存区产生了分页错误。

建议你用windbg,多看他的帮助,用一段时间分析这样的问题就很容易了。
以下是windbg说明节选
Bug Check 0x50: PAGE_FAULT_IN_NONPAGED_AREA
The PAGE_FAULT_IN_NONPAGED_AREA bug check has a value of 0x00000050. This indicates that invalid system memory has been referenced.

Parameters
The following parameters are displayed on the blue screen.

Parameter Description
1 Memory address referenced
2 0: Read operation
1: Write operation
 
3 Address that referenced memory (if known)
4 Reserved  


If the driver responsible for the error can be identified, its name is printed on the blue screen and stored in memory at the location (PUNICODE_STRING) KiBugCheckDriver.

Cause
Bug check 0x50 usually occurs after the installation of faulty hardware or in the event of failure of installed hardware (usually related to defective RAM, be it main memory, L2 RAM cache, or video RAM).

Another common cause is the installation of a faulty system service.

Antivirus software can also trigger this error, as can a corrupted NTFS volume.

Resolving the Problem
Resolving a faulty hardware problem: If hardware has been added to the system recently, remove it to see if the error recurs. If existing hardware has failed, remove or replace the faulty component. You should run hardware diagnostics supplied by the system manufacturer. For details on these procedures, see the owner\'s manual for your computer.

Resolving a faulty system service problem: Disable the service and confirm that this resolves the error. If so, contact the manufacturer of the system service about a possible update. If the error occurs during system startup, restart your computer, and press F8 at the character-mode menu that displays the operating system choices. At the resulting Windows Advanced Options menu, choose the Last Known Good Configuration option. This option is most effective when only one driver or service is added at a time.

Resolving an antivirus software problem: Disable the program and confirm that this resolves the error. If it does, contact the manufacturer of the program about a possible update.

Resolving a corrupted NTFS volume problem: Run Chkdsk /f /r to detect and repair disk errors. You must restart the system before the disk scan begins on a system partition. If the hard disk is SCSI, check for problems between the SCSI controller and the disk.

Finally, check the System Log in Event Viewer for additional error messages that might help pinpoint the device or driver that is causing the error. Disabling memory caching of the BIOS might also resolve it.

Comments
Typically, this address is in freed memory or is simply invalid.

This cannot be protected by a try - except handler ― it can only be protected by a probe.

leavepeace
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-13 21:58
我想我是不是在ISR例程中访问了不该访问的页?
在优先级不同的例程如果要访问共享资源,在
ddk中可以把共享资源的代码放到一个SynchCritSection
例程中,但是在ds中不知如何实现?
我以上的理解是否对?
帮帮我!
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-14 08:40
ISR执行在高于DISPATCH_LEVEL的IRQL上。因此ISR中使用的所有代码和数据必须存在于非分页内存中
早起早睡 精神百倍
leavepeace
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-14 09:45
现在我在中断中什么都不做,只是简单的返回,看看有没有问题。结果发现打不开设备。返回错误代码为2。那位大虾帮帮我。
现追加30分。
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-14 10:02
当你的机器死掉后,会有一个内存专储文件。用windbg打开他。兵家在正确的符号,定为这种错误是非常容易的。你为什么不照我说的式式。windbg在www.microsoft.com/ddk处下载,免费的。
leavepeace
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-15 09:40
多谢了!我的问题已经解决。
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-15 10:24
多谢了!我的问题已经解决。


gxgx,怎么解决的? :D
早起早睡 精神百倍
leavepeace
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-05-15 10:55
中断设置有点问题。非常感谢你们。
leavepeace
驱动牛犊
驱动牛犊
  • 注册日期2003-02-08
  • 最后登录2004-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-05-15 10:58
如何送分?
游客

返回顶部