|
|
发表于 2012-1-5 18:32:42
|
显示全部楼层
见到过最多的就是
* P5 j' `4 m3 c; P, A WMI ACPI , " j7 E- z, |) R \3 o! L9 S5 s
1. 一般做法都是 BIOS在CODE中定义一个Device, PNP0C14 ?? 记不太清了 ,
. |' L- x" P! h( P 2. 然后 OS会为此device 安装提供Driver, 然后BIOS 在这个Device Scope里 实作一些 访问PC 的接口, Z8 V9 J2 u! p; H. M
并把这些接口Expose 出去, $ z# J' ]$ q, W+ |* B
3. 上层应用程式 即可透过这些 接口 访问底层 (直接调用Windows API 即可) U) {8 e7 ]+ V5 N* r' j; D, H
很久以前有实际操作过这个过个东西,
( F2 `4 L3 W N# ?2 N+ e; p 当时也是看了好多好多资料,问了好多人,然后自己拿了一套BIOS code ,实作了一些Interface ,总算明白了一点点了,但是这个东西太多了啊!!!
4 q& k0 \& T4 ]5 z: K$ ? U 另外,论坛里也有很多资料哦, 可仿照做做7 i2 w% a7 m+ S2 f- d' Y5 _
当然WMI ,决不限于此,我感觉,它的好处是可以不用自己写Driver,就可以透过API访问底层,同时不用考虑兼容性,
- S2 d8 f- {( a Windows 会为你处理好这个,因为是通过Windows driver 来实现的,当然,要做出特殊的客制化功能,还是得BIOS配合一下哦" O+ ]3 H; J T( b1 s
WMI 和BIOS之间是透过 WMIACPI.sys 来通信
8 v# W# o0 l. K- X" n- O; K1 [ 另外,如果你发现调用 WMI接口可以访问 EC控制的device ,那么,应该是BIOS中为你做好了 访问EC的interface & `! _9 Z, P. T K: x/ b, { j
也可以看看WMI ACPI的白皮书 ,有详细讲解
+ k* n, j. b1 `! e6 |9 W以上是个人的一些实践总结, 有误请指正,谢谢
* w7 e e$ D% K6 }7 u* z* u% Y5 w+ q' @, R3 _
[ 本帖最后由 蓝色永恒 于 2012-1-5 18:47 编辑 ] |
|