阅读:1435回复:6
如何初始化中断(KInterrup::Initialize (WDM那种)
我用的DRIVER STUDIO,XP环境
定义如下KInterrupt mMyInt; 在startDevcie里初始化如下 m_MyInt.Initialize( 26,//IRQL 我试了好多都不行。 6,//中断向量也试了好几个 LATCHED,//这参数的2中形式都试验过 TRUE ); 但是我用m_MyInt.IsValid()试验,发现老是失败。是不是因为我试验的那几个中断1(键盘),6(软驱),12(鼠标),驱动都不是WDM方式的。所以没办法用WDM方式的初始化,共享他们的中断? 有人成功用过KInterrup::Intialie(...)的Form 2(WDM)的方式进行中断初始化过吗。还是WDM方式没办法共享中断? |
|
论坛版主
|
沙发#
发布于:2003-12-29 15:10
IRQL 26?太大了吧,你试没试9,IRQL和中断号都用9试试,另外你的BIOS设不设置PCI SLOT的中断号?设设看(如果你是在用主板的PCI SLOT的情况下:))。
|
|
板凳#
发布于:2003-12-29 20:59
有没有用过KInterrup::Intialize这个函数?
我发现自己怎么用都不行。 用FORM2(WDM那种),就出现我一开始说的问题。 用FORM3 则没有办法安装。安装的时候是错误10 我查了一下。是The enviroment is incorrect.不知道怎么搞的。 是不是INF文件的问题? 这个和PCI SLOT有什么关系吗? 我只是想写个中断程序。不一定是PCI的。但是我现在只是初始化一下都不行。 大家是不是都不怎么用 DriverStudio? |
|
论坛版主
|
地板#
发布于:2003-12-30 11:29
:)我以为你是做PCI卡的驱动,有些主板上BIOS可以规定SLOT的中断号,我怀疑有影响,DS确实没用过,不过这个和INF应该没关系,等等看有没有高手来帮你:)
|
|
地下室#
发布于:2003-12-30 22:06
今天又试验了一下。。居然好象又是XP和98的问题(和INF文件也有关系。要改动几个地方)98下初始化中断好好的。但是在XP下就根本没有用。。
想不到WDM程序在98和2000下执行的效果完全不一样。而且居然是98更符合我的想象。 我用FORM3 实验了一下。(XP下)居然返回值是成功的 而IsValid()居然还是失败。。 |
|
5楼#
发布于:2003-12-31 09:56
你的Form2里是不是少了两个参数啊?
BOOLEAN bShareVector=FALSE, KAFFINITY affinity=1, 而且bSaveFloat在X86平台机上是FALSE。不知你的是什么平台用TRUE。 |
|
|
6楼#
发布于:2003-12-31 21:54
是P4
|
|