|
|
发表于 2012-1-5 18:32:42
|
显示全部楼层
见到过最多的就是
. D, S f; Y" b WMI ACPI , 9 |4 i a0 U4 t( o
1. 一般做法都是 BIOS在CODE中定义一个Device, PNP0C14 ?? 记不太清了 ,
9 j$ O* ]$ h7 ~. d9 ]* E 2. 然后 OS会为此device 安装提供Driver, 然后BIOS 在这个Device Scope里 实作一些 访问PC 的接口,
9 m$ D9 L$ D5 ^9 v7 d8 D$ c1 G 并把这些接口Expose 出去,
J* \* @; U# C8 O! B9 f 3. 上层应用程式 即可透过这些 接口 访问底层 (直接调用Windows API 即可)% p) X$ s/ p; ^1 E5 F4 f- Z G
很久以前有实际操作过这个过个东西,1 r0 J; {- c; M+ V( L
当时也是看了好多好多资料,问了好多人,然后自己拿了一套BIOS code ,实作了一些Interface ,总算明白了一点点了,但是这个东西太多了啊!!!
: n/ o" Y. }& n$ g7 e. n# w 另外,论坛里也有很多资料哦, 可仿照做做
3 K$ Z1 |1 C7 z5 O. d9 y 当然WMI ,决不限于此,我感觉,它的好处是可以不用自己写Driver,就可以透过API访问底层,同时不用考虑兼容性,
8 d& u2 ?- r1 J) z4 ` Windows 会为你处理好这个,因为是通过Windows driver 来实现的,当然,要做出特殊的客制化功能,还是得BIOS配合一下哦
9 w: w$ F O8 Y( m7 V0 U. H$ X: Q! C WMI 和BIOS之间是透过 WMIACPI.sys 来通信8 j; G4 P% T6 p) f# M7 \
另外,如果你发现调用 WMI接口可以访问 EC控制的device ,那么,应该是BIOS中为你做好了 访问EC的interface
+ a$ s/ {( e# B 也可以看看WMI ACPI的白皮书 ,有详细讲解
. y# ~6 `. l$ b' R# }' C. s! h! y以上是个人的一些实践总结, 有误请指正,谢谢5 O# D! t4 H7 i6 `% a
' I9 A$ p5 f3 v[ 本帖最后由 蓝色永恒 于 2012-1-5 18:47 编辑 ] |
|