请问应用程式怎么得到 bios 发出的 SCI 消息

你妹的特盗不 2010-05-13 04:29:18
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的动作即可。

...全文
120 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
你妹的特盗不 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 songhtao 的回复:]
系统处理SCI中断过程对驱动是透明的。

大概只能Hook IDT了,hook IDT里面的
acpi!ACPIInterruptServiceRoutine函数。
---------------------------------------------
如果放宽一点条件,小改一下EC部分的ASL Code的话,就好办了,在特定Q Method里面去读写一下EC Space中AD Co……
[/Quote]
非常感谢你的回复,我再参考参考
我不懂电脑 2010-05-18
  • 打赏
  • 举报
回复
系统处理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
---------------------------------------------
如果不考虑用中断,其实轮询也很快的
YeBinYe 2010-05-15
  • 打赏
  • 举报
回复
BIOS底层这东西没做过,只好帮你顶一个

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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