NKCallIntChain返回值为3

yangyong9608 2009-12-24 01:09:14
KernelIoControl IOCTL_HAL_REQUEST_SYSINTR 方法申请了一个动态中断,物理中断用的定时器中断3,逻辑中断返回30
OEMInterruptHandle里面判断是定时器3中断来了,调用NKCallIntChain(定时器中断3)返回为3,SYSINT_CHAIN,请问这是为什么呢

内核中串口驱动也是IOCTL_HAL_REQUEST_SYSINTR 方法申请中断的,NKCallIntChain返回值是正确的
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyong9608 2009-12-24
  • 打赏
  • 举报
回复
下班前再没人进,分就都给kyzf啦,呵呵
yangyong9608 2009-12-24
  • 打赏
  • 举报
回复
晕死我了,唉,调用OALTranslate一下就对了,OALTranslate里面正好是IOCTL_HAL_REQUEST_SYSINTR申请时候两个数组的对应值

NKCallIntChain是跟LoadIntChainHandler配套用的怪不得跟IOCTL_HAL_REQUEST_SYSINTR不相干

一直都是直接用,没仔细看过代码,闹了个笑话,结贴了
kyzf 2009-12-24
  • 打赏
  • 举报
回复
友情帮顶下
yangyong9608 2009-12-24
  • 打赏
  • 举报
回复
内核版本是ce5.0,BSP里面有些地方用了static的中断对应方式,难道是这些影响了?

想输出点调试信息看看问题出在哪里,于是看了NKCallIntChain的代码,循环判断的是一个结构体数组,handle与值的对应,找遍代码只有一个HOOK打头的函数是在为结构体赋值,而IOCTL_HAL_REQUEST_SYSINTR对应的OAL函数是维护了两个数组,NKCallIntChain是怎么与IOCTL_HAL_REQUEST_SYSINTR申请的中断联系起来的呢?

望高人指点一二

19,502

社区成员

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

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