阅读:1334回复:5
救命!ds开发PCI驱动的问题?
用ds开发PCI卡(PCI9054)的驱动,需要用到中断。用向导生成的框架程序,在ISR中需要判断是否是我的卡所发出的中断,如果是的话需要禁止中断,然后调用DPC。问题是我在ISR中加入了判断中断和禁止中断的语句后,一运行机器就重启。判断中断的方法是使用成员变量m_MemoryRange0(向导生成)读PCI9054的中断寄存器来判断,禁止中断是写入这个寄存器。我怀疑是不能用成员变量m_MemoryRange0来访问PCI9054的中断寄存器。请各位指点。
|
|
最新喜欢:songqi... |
沙发#
发布于:2003-01-20 09:09
经过无数次的重启和死机,终于发现是DPC服务程序中的一段代码的问题。我把这部分代码贴在现面,高手们看看怎么回事。
// TODO: The Wizard creates a single queue for all Irps. //If you have created additional queues, select //the appropriate queue for this Irp here. KIrp I(m_DriverManagedQueue.CurrentIrp()); // TODO: Set the Status and Information fields to reflect //the success and size of the transfer I.Status() = STATUS_SUCCESS; I.Information() = 0; // PnpNextIrp completes this IRP and starts processing // for the next IRP in the driver managed queue. m_DriverManagedQueue.PnpNextIrp(I); // The following macros simply allows compilation //atwarning Level 4 // If you reference these parameters in the function simply // remove the macro. UNREFERENCED_PARAMETER(Arg1); UNREFERENCED_PARAMETER(Arg2); |
|
板凳#
发布于:2003-01-22 12:46
是io还是memory?映射过么?
|
|
|
地板#
发布于:2003-02-19 23:34
兄弟
你这个问题解决没有 我也碰到了和你一样的问题 不过我的错误提示是:蓝屏DRIVER_IRQL_NOT_LESS_OR_EQUAL 当我把在ISR中把调用DPC的那句注释掉时,就不会出现蓝屏 请指教啊。。。 |
|
地下室#
发布于:2003-02-20 18:12
我后来发现不是DPC的问题,把中断控制寄存器映射到I/O空间就可以了。
|
|
5楼#
发布于:2003-02-25 15:05
不行啊
我改成IO映射还是蓝屏 我的板卡驱动是为9052写的数据采集卡驱动 不知老大能不能让我借鉴一下你的驱动程序啊 我已经被这个驱动折腾了三月拉 苦恼啊 周围也没有用DS的人请教 老大救命啊 还有就是现在注释掉DPC(为了不蓝屏)后 机器很慢 CPU占用80%都 //BOW。。。急 快要到老板给的deadline拉 |
|