新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 帮助大家解决各类计算机故障,比如:安装双系统,ADSL上网故障,病毒防火墙,删除3721、木马,上网故障,播放器故障、电脑黑屏、注册表修改等。
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL休息区『 网友互助 』 → BIOS点滴Follow Bini系列之---WMI ACPI 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 14130 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: BIOS点滴Follow Bini系列之---WMI ACPI 举报  打印  推荐  IE收藏夹 
       本主题类别: Description Logics | DOM    
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 网友互助 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 BIOS点滴Follow Bini系列之---WMI ACPI

    Microsoft? Windows? Management Instrumentation(WMI)是微软提供的Windows环境自动管理方案,它建立在“公共信息模型”(CIM)这个工业标准的基础上。

    WBEM : WBEM(Web-Based Enterprise Management)作为一项业界倡议,起始于1996年,它规范了企业网络中受管资源的描述与使用。WBEM由以下几个组件组成:
    1) CIM 公共信息模型 (CIM――Common Information Model)是一种机制,用于为受管资源建模并以受管对象格式 (MOF) 表现这些模型。使用CIM和MOF,组成受管资源或资源网络的组件可以象在面向对象设计过程中使用的组件一样被建模和看待。
    2) 受管对象格式 (MOF) 是源自CIM模型中的类和关联的正规描述。MOF有它独有的语法,但使用来自于DMTF中的DTD可将它转化为XML。/
    3) 标准化模型是一个CIM类集合,用于表现一个特殊的管理域。模型可以表现核心CIM类、网络类、软件类和更多的类。,
    4) CIM对象管理器 (CIMOM) 是CIM类实例的一个数据库。CIMOM是访问管理资源的重点。
    5) XML API提供对数据的标准化访问并启用针对CIMOM中显示的受管资源的操作。

    各个公司提供自己对WBEM的实现,它们都必须遵循由DMTF提出的规范。所有符合WBEM的技术必须接受由DMTF发行的标准化模型并且所有关联的CIMOM都可通过标准XML API访问。

        关于WMI的具体资料,请在微软相关的网站查找。(官方MSDN地址:http://msdn.microsoft.com/en-us/library/aa394582.aspx )

    事前准备:
    1、装好(windows 2000或以上) DDK,我用的是Windows DDK 3790.1830计匠网论坛"

    2、准备好你的BIOS源码,含DSDT源码。
    可选学习的准备:
    1、Windows System Administration Scripting Guide - Script Repository (练习一些管理脚本的编写)
            地址:http://www.ufoit.com/bbs/thread-351-1-1.html
    2、WMI-ACPI白皮书(Windows 2000 Instrumentation: WMI and ACPI),见后面附件(Attachment)。
    WMI ACPI数据处理介绍:计匠网论坛"
    1、ACPI驱动依据受管对象格式 (MOF) 所描述的对象,进行数据收集,如在ACPI BIOS内,就会访问ACPI BIOS进行数据收集。
    2、上层软件既可对WMI所受管的对象进行数据访问。

    我们要做的几个步骤:
    1、编好对象格式 (MOF)文件。
    2、用DDK编译对象格式 (MOF)文件成为资源文件之后,参照wmi acpi白皮书,进行wmi-acpi注册,以让wmi acpi driver接管。
    3、BIOS按wmi acpi白皮书中的方法,对应MOF文件的数据或方法进行描述。编译BIOS刷入。
          PS: pnp0c14 is the ID assigned by Microsoft to the WMI to ACPI mapper,   Name(_HID, "*pnp0c14")
    4、重启,至此,在OS中可用上层软件进行与BIOS通信。大功告成!
    分解慢动作:
    1、分解MOF文件.
    复制内容到剪贴板
    代码:

    // File: demowmi.mof
    //{39142400-C6A3-40fa-BADB-8A2652834100}
    //IMPLEMENT_OLECREATE(&lt;&lt;class&gt;&gt;, &lt;&lt;external_name&gt;&gt;,
    //0x39142400, 0xc6a3, 0x40fa, 0xba, 0xdb, 0x8a, 0x26, 0x52, 0x83, 0x41, 0x00);

    [WMI,
    Dynamic,
    Provider(&quot;WmiProv&quot;),
    Locale(&quot;MS\\0x409&quot;),
    Description(&quot;Events&quot;),
    guid(&quot;{39142400-C6A3-40fa-BADB-8A2652834100}&quot;)
    ]
    class DemoWMIData
    {
        [key, read]
         string InstanceName;
        [read] boolean Active;

        [WmiDataId(1),
         read, write,
         Description(&quot;description&quot;)
        ] uint32 Data;
    };
    2、第二步用DDK编译MOF文件分解
    复制内容到剪贴板
    代码:
    rem makedemo.bat ,by bini.yi for teaching.
    Mofcomp -B:demowmi.bmf demowmi.mof
    wmimofck -tdemowmi.vbs demowmi.bmf
    rc demowmi.rc
    Link /DEF:demowmi.DEF demowmi.res /NOENTRY /DLL /MACHINE:Ix86 /OUT:demowmi.dll
    注:用上步骤编译后会自动参生 vbs脚本,用于验证。
    然后按WMI ACPI白皮书的方法加入注册表。

    3、第三步分解:ACPI BIOS DSDT中加入代码,编好刷入。
    复制内容到剪贴板
    代码:

    // File: demowmi.ASL

    Device(DWMI)
    {
    // PNP0C14 is PNP ID assigned to WMI mapper
    Name(_HID, EISAID(“PNP0C14”))
    Name(_UID, 0x0)

    Name(_WDG, Buffer(){
    // {39142400-C6A3-40fa-BADB-8A2652834100}
    0x00, 0x24, 0x14, 0x39, 0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00, 0x30, 0x30, 0x01, 0x01, // 00 = Demo
    })

    Name(DD00, 0)

    Method(WQ00, 1)
    {
       //DBGS(&quot;Demo Wmi Get Function:&quot;)
       //DW2H(DD00)
       //尝试一下发一些看得见摸得着的东西出来
    Return(DD00)
    }

    Method(WS00, 2)
    {
       //DBGS(&quot;Demo Wmi Set Function:&quot;)
       //DW2H(ARG1)
       //尝试一下发一些看得见摸得着的东西出来
    Store(ARG1, DD00)
    }
    }
    4、什么?死机....还要拆机!....不关我的事。

    怎么样?有没有兴趣整一个acpi debugger或者写一个与BIOS通信的Application了呢?那就敢快出手吧~!


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/2/12 9:16:00
     
     hjx_221 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:博士一年级
      文章:4607
      积分:24021
      门派:XML.ORG.CN
      注册:2004/8/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hjx_221发送一个短消息 把hjx_221加入好友 查看hjx_221的个人资料 搜索hjx_221在『 网友互助 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hjx_221的博客2
    发贴心情 
    谢谢提供!!!热情顶贴!!!!

    ----------------------------------------------
    初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒~ 
    http://hjx221.blogger.org.cn/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/2/12 18:47:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 网友互助 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/25 21:28:52

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms