首先说一下该段代码是摘自友善的wince5.0 BSP.在友善的micro2440开发板上有六个按键,通过驱动程序把他们设置成了TAB键,RIGHT DOWN,LEFT DOWN ,ENTER,RIGHT,LEFT等六个功能键。具体代码如下:
从代码可以看出结构和流程都十分清晰,在此总结一下动态申请中断的大致流程:
1》创建事件 CreateEvent()
2》动态申请逻辑中断号 KernelIoControl()
3》初始化申请到的中断 InterruptInitialize()
4》创建IST线程,在线程中调用WaitForSingleObject()等待事件发生并进行中断处理
5》结束中断 InterruptDone()
有一点需要提醒,凡是程序中开发者主动申请的内存,句柄,事件等一定要记得释放,否则程序可能会得到你意想不到的结果!