makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1425回复:6

如何初始化中断(KInterrup::Initialize (WDM那种)

楼主#
更多 发布于:2003-12-27 10:39
我用的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方式没办法共享中断?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-29 15:10
IRQL 26?太大了吧,你试没试9,IRQL和中断号都用9试试,另外你的BIOS设不设置PCI SLOT的中断号?设设看(如果你是在用主板的PCI SLOT的情况下:))。
根据地的兄弟们,团结就是力量
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-29 20:59
有没有用过KInterrup::Intialize这个函数?
我发现自己怎么用都不行。
用FORM2(WDM那种),就出现我一开始说的问题。

用FORM3 则没有办法安装。安装的时候是错误10
我查了一下。是The enviroment is incorrect.不知道怎么搞的。

是不是INF文件的问题?

这个和PCI SLOT有什么关系吗?
我只是想写个中断程序。不一定是PCI的。但是我现在只是初始化一下都不行。
大家是不是都不怎么用 DriverStudio?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-30 11:29
:)我以为你是做PCI卡的驱动,有些主板上BIOS可以规定SLOT的中断号,我怀疑有影响,DS确实没用过,不过这个和INF应该没关系,等等看有没有高手来帮你:)
根据地的兄弟们,团结就是力量
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-30 22:06
今天又试验了一下。。居然好象又是XP和98的问题(和INF文件也有关系。要改动几个地方)98下初始化中断好好的。但是在XP下就根本没有用。。
想不到WDM程序在98和2000下执行的效果完全不一样。而且居然是98更符合我的想象。


我用FORM3 实验了一下。(XP下)居然返回值是成功的
而IsValid()居然还是失败。。
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-31 09:56
你的Form2里是不是少了两个参数啊?

BOOLEAN bShareVector=FALSE,
   KAFFINITY affinity=1,
而且bSaveFloat在X86平台机上是FALSE。不知你的是什么平台用TRUE。
给分才有动力!所以我坚决给分!
makefriend8
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2014-06-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望111点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-31 21:54
是P4
游客

返回顶部