请问应用程式怎么得到 bios 发出的 SCI 消息
RT
补充下
SCI只能在ACPI的OS下发出来,如果在DOS下能触发的中断,那肯定不是SCI,那可能是SMI。SMI同样可以在OS下发出来。在进入ACPI的OS后,Bios把CPU的控制权交给OS,SMI还是可以发出来的。SMI大部分由硬件来issue,也可以发soft SMI,一般是想port 0B2h下command,然后在SMI Handle中加入对cmd的动作即可。
[解决办法]
BIOS底层这东西没做过,只好帮你顶一个
[解决办法]
系统处理SCI中断过程对驱动是透明的。
大概只能Hook IDT了,hook IDT里面的
acpi!ACPIInterruptServiceRoutine函数。
---------------------------------------------
如果放宽一点条件,小改一下EC部分的ASL Code的话,就好办了,在特定Q Method里面去读写一下EC Space中AD Converter中的相应位置。
然后让你的驱动附加到驱动acpiec上,用RegisterOpRegionHandler注册一个Handler来监视系统对EC Space的操作。完了过滤你感兴趣的内容。
代码参考http://www.osronline.com/ddkx/acpi/opregdg_9qqv.htm
以及DDK中的acpisim.c
---------------------------------------------
如果不考虑用中断,其实轮询也很快的