下面是我用DS写的ISA卡的NT式的驱动的部分程序,运行在WIN2000上,中断方式获得数据,具体工作原理是:在驱动的初始化例程(DDK里就是驱动入口点例程),驱动分配一个非分页内存Buf用来在中断延迟例程里存放从端口读到的数据,驱动程序通过一个DeviceIoCtl把该内存影射...
全文
回复(15) 2004-02-25 16:40 来自版块 - ABC初学者
表情
libin2309我刚才打印了申请到的Buf地址,是f9f84aa8,softice 显示的信息这次没有内存溢出。但在关机的时候,弹出错误: Break Due to KeBugCheckEx(Unhandled kernel modle exception) Error=c2(BAD POO...(2004-02-27 20:36)
arthurtu申请内存成功了就可以打印了,一次足矣(2004-02-27 19:08)
libin2309把Buf的地址打印看看是不是和riverMonitor显示underrun的地址一样 既然shutdown了无所谓释放内存了 在中断延迟里读端口之前加上这个: t<<"Buf address is:"<<(ULONG)Buf...(2004-02-27 14:12)
arthurtu把Buf的地址打印看看是不是和riverMonitor显示underrun的地址一样 既然shutdown了无所谓释放内存了(2004-02-27 13:47)
libin2309我也帮你顶顶,说不定会有人旁观者清。 但凡驱动引起的蓝屏,99%都是因为在驱动中访问了不存在的内存地址所致。 我也是这么认为的,但我的程序里中断例程和中断延迟调用里,对自己用NEW操作符在堆里分配的非分页内存Buf的操作,从语法上说没产生越界,那什么地方访问了不存在的内...(2004-02-27 09:28)
changjt我也帮你顶顶,说不定会有人旁观者清。 但凡驱动引起的蓝屏,99%都是因为在驱动中访问了不存在的内存地址所致。(2004-02-27 08:29)
libin2309顶!(2004-02-26 15:22)
libin2309我也不明白,只是把我的体会说一下 像我的pci也是那样子的,你可以试试看 你能详细说说的你的PCI的驱动,在用SOFTICE调试的时候出现的是什么样的错误吗?? 写出它的错误提示。 谢谢!(2004-02-25 19:53)
libin2309我做PCI也是遇到和你一样的问题 就是判断了中断是不是自己的硬件产生的后才没再出现 我认为PCI 的中断资源是共享的,也就是同一个中断号可能被多个设备使用,但在一个时间点上只能被一个设备使用,所以需要判断是哪个设备发来的中断。 ISA的中断是独占的,我修改了主板的...(2004-02-25 19:52)
xxiezhen我也不明白,只是把我的体会说一下 像我的pci也是那样子的,你可以试试看 (2004-02-25 19:48)

返回顶部