阅读:1779回复:9
高分请教:如何与Win2000系统共享IRQ0(系统时钟中断)?
要如何才能在驱动程序中挂接一个IRQ 0(系统时钟中断,就是DOS下的那个INT 8)中断服务程序呢?
我发现一个奇怪的现象:在我的兼容机(操作系统:Win2000 Professional)上,开始时用WinDriver跟踪IRQ0中断时提示不能跟踪,好像是说该中断不能被共享,可是后来不知道为何又能跟踪了,但跟踪不到任何中断到来,不过在驱动程序中已经可以用HalGetInterruptVector()获取中断向量并链接到中断,而且也确实进入了中断服务程序(每秒18次调用),在这台兼容机上可以用HalGetInterruptVector获取任何IRQ号的中断向量!可是在另一台工控机上却死活不能使用该中断,用HalGetInterruptVector()获得的向量总是0(NULL)!我实在想不出这两台机器在软件配置上有何不同,它们的操作系统完全一样,同样都安装有SoftIce3.1和WinDriver6.23,真是晕!利用这个中断的硬件定时功能对我的ISA卡很重要,我不能使用内核Timer,因为它的IRQL达不到硬件中断级别,高手们请详细说明一下要如何才能安全稳定的共享IRQ0中断,如果问题解决将不惜百分相增,即便不能解决也希望高手多谈谈这方面的经验,我将不胜感激!多谢!多谢! [编辑 - 5/22/05 by zhenlongyang] |
|
沙发#
发布于:2005-05-23 21:31
此处真的是高手云集的地方么?为什么没有人回复?太简单了?还是正好相反?
|
|
板凳#
发布于:2005-05-23 23:02
我实在想不出这两台机器在软件配置上有何不同 硬件有不同吗 ?? |
|
地板#
发布于:2005-05-23 23:16
硬件当然不同,但都属IBM兼容机系列,CPU都是Intel的。
|
|
地下室#
发布于:2005-05-24 08:42
我直接访问apic的寄存器表示那个table,发现的确我机器上的irq0的中断向量是ff,也就是莫油这个中断。但书上说的是apic的那个脚是直接和8259连上滴。
我知道的就这么多。。。 |
|
5楼#
发布于:2005-05-24 16:12
我直接访问apic的寄存器表示那个table,发现的确我机器上的irq0的中断向量是ff,也就是莫油这个中断。但书上说的是apic的那个脚是直接和8259连上滴。 发现的确我机器上的irq0的中断向量是ff,这里肯定不对!!! |
|
|
6楼#
发布于:2005-05-24 20:37
我直接访问apic的寄存器表示那个table,发现的确我机器上的irq0的中断向量是ff,也就是莫油这个中断。但书上说的是apic的那个脚是直接和8259连上滴。书?哪本书?哪本书有关于apic的介绍的,能告诉我书名么?最好是介绍比较全面,市面上有售的,谢谢! 另外,IRQ0肯定是被Windows系统占用的,而且也肯定有这个中断,因为在我的兼容机上的的确确是可以在驱动程序中挂接这个中断,也的的确确看到了每秒18次的中断调用,我在驱动程序的Read例程中用DebugPrint打印一个只在中断服务程序中被改写的全局变量(每来一次中断,该变量加一),看到该变量的确每秒增加18,但是在工控机上确连取IRQ0的中断向量都无法进行。 [编辑 - 5/24/05 by zhenlongyang] |
|
7楼#
发布于:2005-05-25 08:53
[quote]我直接访问apic的寄存器表示那个table,发现的确我机器上的irq0的中断向量是ff,也就是莫油这个中断。但书上说的是apic的那个脚是直接和8259连上滴。 发现的确我机器上的irq0的中断向量是ff,这里肯定不对!!! [/quote] 我也觉得不可能哈。或许不是这里指出的。 不过请你访问一下:fec00000-fec00020这段内存。并把fec000000的那个byte从10依次改到3f,同时当fec000000为偶数时,看fec00010的数据,第一个byte就是中断向量号了。 |
|
8楼#
发布于:2005-05-25 08:56
[quote]我直接访问apic的寄存器表示那个table,发现的确我机器上的irq0的中断向量是ff,也就是莫油这个中断。但书上说的是apic的那个脚是直接和8259连上滴。书?哪本书?哪本书有关于apic的介绍的,能告诉我书名么?最好是介绍比较全面,市面上有售的,谢谢! 另外,IRQ0肯定是被Windows系统占用的,而且也肯定有这个中断,因为在我的兼容机上的的确确是可以在驱动程序中挂接这个中断,也的的确确看到了每秒18次的中断调用,我在驱动程序的Read例程中用DebugPrint打印一个只在中断服务程序中被改写的全局变量(每来一次中断,该变量加一),看到该变量的确每秒增加18,但是在工控机上确连取IRQ0的中断向量都无法进行。 [编辑 - 5/24/05 by zhenlongyang] [/quote] 具我所知,ichx里面有讲, ia32 3 ,也有讲。。。。 |
|
9楼#
发布于:2005-05-25 10:07
浪费表情了,irq0是apic控制不了的一个中断,肯定是存在系统中,在windows下,中断号应该是0。
|
|