libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:822回复:2

为什么申请两个中断,只能成功分配一个!

楼主#
更多 发布于:2003-04-16 14:43
驱动类型:NT
开发工具:DS
总线:ISA
程序如下:
/////////////////////////////////设置中断1/////////////////////////////////////
if (theRequest.Assignments() == NULL)
{
t << \"Resource assignment failed for IRQ\\n\";
Invalidate();
return STATUS_RESOURCE_TYPE_NOT_FOUND;
}
else
{

//初始化中断对象
status = m_Irq1.InitializeAndConnect(
theRequest.Assignments(),
LinkTo(Isr_Irq1),
this
);
t<<\" 返回状态:\"<<status<<\"\\n\";

   //初始化是否成功
if (!NT_SUCCESS(status))
{  

Invalidate();
return status;
}
}

//设置DPC用于中断处理过程
m_DpcFor_Irq1.Setup(LinkTo(DpcFor_Irq1), this);


   /////////////////////////////////设置中断2/////////////////////////////////////
if (theRequest.Assignments() == NULL)
{
t << \"Resource assignment failed for IRQ\\n\";
Invalidate();
return STATUS_RESOURCE_TYPE_NOT_FOUND;
}
else
{
// t<<\"succeed assigned source:\"<<(ULONG)<<\"\\n\";
    
//初始化中断对象
status = m_Irq2.InitializeAndConnect(
theRequest.Assignments(),
LinkTo(Isr_Irq2),
this
);//在这里发生错误
   //初始化是否成功
if (!NT_SUCCESS(status))
{    
t<<\" 无效:\"<<status<<\"\\n\";  
Invalidate();
return status;
}
}

//设置DPC用于中断处理过程
m_DpcFor_Irq2.Setup(LinkTo(DpcFor_Irq2), this);
两个中断都能从系统中成功申请到,但只能分配第一个中断,第二个中断在它的初始化和连接处发生错误,这是什么原因??
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-16 16:18
你查看一下错误返回码是什么?
大概你的硬件不支持两个中断吧!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-16 16:53
我申请成功,也就是说,两个中断和系统中存在的其他中断不发生冲突!由于ISA的特性,在申请资源和分配资源的时候可以不插入我的设备,所以楼上大哥说的硬件不支持两个中断,我觉得是不对的!
返回的错误代码是 0xc000000d.
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
游客

返回顶部