wugaofeng555 2020-12-24 16:24 采纳率: 0%
浏览 56

将硬件中断IRQ10与驱动中的中断服务函数挂钩

代码:
    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函数执行不成功,返回错误,谁帮我看看代码怎么改。
 

  • 写回答

10条回答 默认 最新

  • 泡视界 2020-12-24 16:41
    关注

    既然IoConnectInterrupt返回了错误值,那你就要进去看这个函数的实现啊。

    看看那一步返回了你得到的错误值,看看条件是什么,就知道你有啥问题了呀

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大