阅读:2915回复:15
为什么会有windows protection error?
我在向卡的寄存器位写1时会出现windows protection error的错误,然后叫我关机,这是怎么回事,再不解决没法做了,望高手指点。
|
|
|
沙发#
发布于:2002-04-25 11:12
你的地址对吗?
可以详细点? |
|
板凳#
发布于:2002-04-25 12:36
地址没错,向这个寄存器的其他位写1或0不会出问题,这个位是这样的,向其中写1就清除卡对HOST的中断,因为我在读的时候,发现这个位为1表示卡向HOST提交中断了,因此我要清除他,我这个工作是在APP里做的,有不妥吗?
|
|
|
地板#
发布于:2002-04-25 13:09
98下吗?
你用什么指令写寄存器的。 |
|
|
地下室#
发布于:2002-04-25 13:14
是98下,app里用deviceiocontrol,传到驱动是用inw,outw指令
|
|
|
5楼#
发布于:2002-04-25 14:40
那没有问题呀
执行到哪一行程序出现的保护性错误 |
|
|
6楼#
发布于:2002-04-25 14:49
哪一行?就是写寄存器这个函数啊。
|
|
|
7楼#
发布于:2002-04-25 16:25
有时会弹出softice窗口,我发现,实际上驱动里这些读写寄存器的操作全进行了,感觉好象是到最后关闭时出错了,错误提示是这样的:Break due to page Fault(0Eh) Fault=0002
MSR LastExpectionFromIp=c0017617 MSR LastExpectionToIp=00000000 大侠,救救我吧。 |
|
|
8楼#
发布于:2002-04-25 16:51
是不是IRQL――LEVEL不够的问题??
|
|
|
9楼#
发布于:2002-04-25 17:01
我不大明白,该怎么解决?
|
|
|
10楼#
发布于:2002-04-26 08:57
怎么没人回答我啊?
|
|
|
11楼#
发布于:2002-04-26 13:50
有时会弹出softice窗口,我发现,实际上驱动里这些读写寄存器的操作全进行了,感觉好象是到最后关闭时出错了,错误提示是这样的:Break due to page Fault(0Eh) Fault=0002 你这里是Page Fault(0E),即分页错误,可能是你的Driver访问分页内存所致! 在softice弹出窗口是看看MSR LastExpectionFromIp所指地址内容? 你的ISR地址是多少? 还有种可能就是你占用了过多的NonPagedPool. |
|
|
12楼#
发布于:2002-04-28 15:42
该怎么解决,大侠们出招啊
|
|
|
13楼#
发布于:2002-04-28 16:15
检查一下,有没有什么地方错误,如在ISR里面访问了分页内存等,
再就是,就算在vxd里面,建议还是用simulate_vm_io来向port读写。 看你的样子,应该是哪段代码有错。 |
|
14楼#
发布于:2002-04-28 22:53
我做的是WDM驱动
现在先不考虑ISR,我只是在APP对一个控制寄存器的位写1来禁止板卡的中断,我想只是一个写寄存器操作而已,况且我写其他寄存器或该寄存器其他位都不会出错,真是不明白? |
|
|
15楼#
发布于:2002-04-29 11:09
在驱动里定义的变量属于分页内存区还是非分页内存区呢
|
|
|