如何编程实现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,如需转载请自行联系原作者
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值