如何编程实现iAMT无线功能的禁用和开启-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

如何编程实现iAMT无线功能的禁用和开启

简介:
  Intel AMT 2.5和4.0版本中引入了对无线的支持,也就是说通过无线接口同样可以进行远程的管理。IAMT 4.0更是将无线管理的功能扩展到了系统关机或休眠状态,也就是Sx状态,原来的2.5只支持S0电源状态下的无线远程管理。默认情况下,iAMT的无线 管理功能是关闭的,这个通过WebUI的“Wireless Setting”菜单项可以看到,Wireless Management功能默认情况下是Diabled,如下图所示。
        有的开发人员在开发的时候一般都会碰到这样一个问题:无线的配置是通过iAMT的"Wireless Configuration Interface"里面提供的函数来增加和删除的,还包括获取无线的Capabilities,也就是上面图所示的"Band mode capabilities";但是却怎么也找不到将Wireless Management Eanble的函数。 到底这个功能的函数在哪里呢?该怎么调用呢?
        其实这个功能是关于network interfaces的,iAMT在其"Network Administration Interface"里面提供了相关函数:SetNetworkInterface。这个函数在SDK的NetworkAdminstration的 Sample中有调用,可以参考一下。其中InterfaceHandle为0是表示的是有线接口,为1就是设置无线接口;参数 InterfaceDescriptor中的LinkPolicy就决定了iAMT的无线功能在什么样的情况下Enable。 LinkPolicy的结构是这样的:
    typedef enum<uint8> _LinkPolicyType
    {
        AVAILABLE_ON_AC_S0 = 0x01,
        AVAILABLE_ON_AC_SX = 0x0E,
        AVAILABLE_ON_DC_S0 = 0x10,
        AVAILABLE_ON_DC_SX = 0xE0
    } LinkPolicyType ;
      具体每个参数的解释,大家可以参考SDK中的文档。很明显,LinkPolicy这个参数应该是上面这几个枚举值的叠加。开始我随便叠加了一 个,比如0x1E,用程序调用试了一下,结果是 PT_STATUS_INVALID_PARAMETER 错误,看来是参数不对。仔细想了一下,结合WebUI上面的三个选项(参考上面的图),看来应该是只有三个参数是可行的:
    1) 0x00 表示Wireless Management是Disable的;
    2) 0x11  表示Wireless Management在AC(交流电,接电源)和DC(直流电,接电池)情况下且机器开机时是Enable的;
    3) 0x1F 表示Wireless Management在AC情况下任何时候,以及DC情况下的开机时时Enable。
        Intel AMT目前是不支持DC情况的关机时iAMT无线也工作,因为那样很快就会把笔记本电池的电耗干净的。
        另外,还需要注意一点的是,上面这个函数设置后,需要调用CommitChanges函数,相应的设置才会生效,并且CommitChangs函数是SecurityAdministrationService里面的,调用时候注意修改URL。


本文转自Intel_ISN 51CTO博客,原文链接:http://blog.51cto.com/intelisn/131471,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: