|
|
发表于 2012-1-5 18:32:42
|
显示全部楼层
见到过最多的就是 h, v+ _1 s, F" X
WMI ACPI , + V, B$ H+ B0 m+ c1 g2 v
1. 一般做法都是 BIOS在CODE中定义一个Device, PNP0C14 ?? 记不太清了 ,; g- r3 E2 ~* q0 Q# m5 b
2. 然后 OS会为此device 安装提供Driver, 然后BIOS 在这个Device Scope里 实作一些 访问PC 的接口,
# G' P9 m- p1 j5 i5 K/ ~6 ? 并把这些接口Expose 出去, ( l: \: i0 n4 z( S9 m( G5 ~
3. 上层应用程式 即可透过这些 接口 访问底层 (直接调用Windows API 即可)! G( W E. {3 J( v k' d
很久以前有实际操作过这个过个东西,
& j9 C! m+ D2 {/ l8 a 当时也是看了好多好多资料,问了好多人,然后自己拿了一套BIOS code ,实作了一些Interface ,总算明白了一点点了,但是这个东西太多了啊!!! % u; D! P, h1 @" S; b
另外,论坛里也有很多资料哦, 可仿照做做- C! h3 E Q: A. B6 A
当然WMI ,决不限于此,我感觉,它的好处是可以不用自己写Driver,就可以透过API访问底层,同时不用考虑兼容性, $ `% Q. z9 ~2 r- f; Q; V7 d
Windows 会为你处理好这个,因为是通过Windows driver 来实现的,当然,要做出特殊的客制化功能,还是得BIOS配合一下哦
* N8 D3 t( p6 {% M; z; Z WMI 和BIOS之间是透过 WMIACPI.sys 来通信+ Q3 w5 K2 Y( I$ d) a# H, ^
另外,如果你发现调用 WMI接口可以访问 EC控制的device ,那么,应该是BIOS中为你做好了 访问EC的interface
5 D) G& I& L8 b) q$ J5 a" h9 {$ A 也可以看看WMI ACPI的白皮书 ,有详细讲解
9 G5 n- Z3 z7 z/ x `; l以上是个人的一些实践总结, 有误请指正,谢谢' G5 A( }4 y. I% Y) T5 V
8 _9 Q1 u0 b d) O8 s- v[ 本帖最后由 蓝色永恒 于 2012-1-5 18:47 编辑 ] |
|