|
|
发表于 2012-1-5 18:32:42
|
显示全部楼层
见到过最多的就是 ! Z- {4 O0 H4 Z5 b* V2 V8 w
WMI ACPI , 4 S2 ?& ]* h% d& p9 B
1. 一般做法都是 BIOS在CODE中定义一个Device, PNP0C14 ?? 记不太清了 ,
, l9 `# T+ \7 `; t 2. 然后 OS会为此device 安装提供Driver, 然后BIOS 在这个Device Scope里 实作一些 访问PC 的接口,
! s2 c+ Z( }0 F+ B& }5 A 并把这些接口Expose 出去,
' q8 E" T& Z+ B; q& W, G 3. 上层应用程式 即可透过这些 接口 访问底层 (直接调用Windows API 即可) z I% ] D% T3 a
很久以前有实际操作过这个过个东西,7 l: `7 D, m$ L- d
当时也是看了好多好多资料,问了好多人,然后自己拿了一套BIOS code ,实作了一些Interface ,总算明白了一点点了,但是这个东西太多了啊!!!
/ r& s/ K# f; c, \, O& G 另外,论坛里也有很多资料哦, 可仿照做做
# Q j" V3 b# P. P$ j- `$ q 当然WMI ,决不限于此,我感觉,它的好处是可以不用自己写Driver,就可以透过API访问底层,同时不用考虑兼容性, 2 H4 Q3 y& b3 o8 q
Windows 会为你处理好这个,因为是通过Windows driver 来实现的,当然,要做出特殊的客制化功能,还是得BIOS配合一下哦; |. _! |" O2 u* O
WMI 和BIOS之间是透过 WMIACPI.sys 来通信9 g4 M+ N D5 {; {2 d: ?/ f
另外,如果你发现调用 WMI接口可以访问 EC控制的device ,那么,应该是BIOS中为你做好了 访问EC的interface
9 X- ~# ~4 Y/ z) s+ r 也可以看看WMI ACPI的白皮书 ,有详细讲解% | d% [ m3 m$ ^
以上是个人的一些实践总结, 有误请指正,谢谢: O& r) W2 s" i n+ }. ^4 T7 V
/ a, l, I+ I- X6 u3 ~
[ 本帖最后由 蓝色永恒 于 2012-1-5 18:47 编辑 ] |
|