-
-
[求助]IRQ被微软扩展成IRQL是怎么落实在硬件的机制上的?
-
发表于:
2008-11-29 17:14
5461
-
[求助]IRQ被微软扩展成IRQL是怎么落实在硬件的机制上的?
请教一下
KeRaiseIrql 内核IRQL提权函数 如何实现的?一般我们的驱动需要同步执行时候都会进行这样的提权操作。(或者通过自旋锁)。
这里为了不被系统分配时间片消耗完后中断执行,因为NT内核负责线程调度的组件是运行在DISPATCH_LEVEL级别的。那么通过该函数的调用
KeRaiseIrql(DISPATCH_LEVEL,&oldirql);
线程就不会发生切换了。但是其函数内部是如何做的的?是不是调用HAL函数对APIC的操作?时钟中断对应的中断处理程序应该就是线程调度程序吧,那么这里就找到时钟IRQ号,一般是一个常数不会每次开机都变吧,然后修改软件中断IRQ号为这个(就是NT下陷入内核的那条指令int 2e对应的IRQ号),然后系统就不响应时钟中断了。
IRQL是微软对中断机制又进行了扩展搞出的中断请求级的概念。不过具体上是怎么落实在硬件操作上的,还请知道的牛们请教一下,不知道的也讨论讨论
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!