求助:很疑惑,如何将外部中断IRQ10与驱动中的中断函数挂钩

wugaofeng555 2020-12-24 04:28:01
代码:
ULONG vector;
KIRQL irql;
KAFFINITY affinity;

vector = HalGetInterruptVector(ACPIBus,
0,
10, //外部硬件中断,中断号10.
10, //外部硬件中断,中断号10.
&irql,
&affinity
);
vector = vector & 0xFF;

KdPrint(("HalGetInterruptVector vector - %X irql - %X affinity - %X\n", vector, irql, affinity));

status = IoConnectInterrupt(&pDevExt->InterruptObject, (PKSERVICE_ROUTINE)OnInterrupt,
(PVOID)pDevExt, NULL, vector, irql, irql, LevelSensitive, FALSE, affinity, FALSE);


功能:将外部中断IRQ10与中断函数OnInterrupt挂钩,中断10触发时进入OnInterrupt函数进行端口的处理操作。
问题:IoConnectInterrupt函数执行不成功,返回错误。
...全文
10733 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
拨浪鼓_C 2022-12-03
  • 打赏
  • 举报
回复

开发windows驱动,好多坑-.-

拨浪鼓_C 2022-12-03
  • 打赏
  • 举报
回复

老哥,这个问题最后解决了没?我也遇到了

wugaofeng555 2020-12-28
  • 打赏
  • 举报
回复
错误提示:IoConnectInterrupt failed - C0000225
wugaofeng555 2020-12-28
  • 打赏
  • 举报
回复
我现在的问题是在win7下写的NT型驱动,使用HalGetInterruptVector和IoConnectInterrupt这两个函数,得不到正确的返回值。有没有在windows下写驱动的?指点一下这两个函数怎么使用,为什么我这样写的不对。
yoveldf 2020-12-26
  • 打赏
  • 举报
回复
单片机的话,你就要看下,不怎么一样
yoveldf 2020-12-26
  • 打赏
  • 举报
回复
linux 中 中断注册时,就可以挂钩,类似这种,request_irq(BACK_DET_VIrq, bixin_isr_back_det, IRQF_TRIGGER_FALLING | ....

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧