WinCE的WiFi开关要依赖于WiFi模块的休眠功能还有模块厂商提供的驱动里面有支持电源管理功能。这里面用的是SDIO86861模块,WinCE5的系统,S3C2416的CPU。

头文件要包括:
#include <winioctl.h>
#include <ntddndis.h>
#include <nuiouser.h>
#include <pm.h>

关键部分代码:

BOOL CDevCtrlDlg::OpenWiFiDriver(BOOL b_OpenDriver)
{
    if(b_OpenDriver)
    {
        //Delete Register
        reg.Create(HKEY_LOCAL_MACHINE, _T("Comm\\NdisPower"));
        reg.DeleteValue(_T("SDIO86861"));
        Sleep();

        //Power Up SDIO86861
        DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\SDIO86861"), D0, POWER_NAME);
        SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\SDIO86861"), POWER_NAME, D0);
#if 0   //这里面因为电源开启之后驱动会自动把网卡开启,所以下面的操作可以不用。// Open NetworkCard
        WCHAR Name[]=_T("SDIO86861\0"); 

        HANDLE m_hFileHandle = CreateFile(_T(, , NULL,OPEN_EXISTING,  FILE_ATTRIBUTE_NORMAL, (HANDLE) INVALID_HANDLE_VALUE);
        if( m_hFileHandle == INVALID_HANDLE_VALUE )
        {
            RETAILMSG(, (TEXT("Failed To CreateFile NDS0!\r\n")));
            return FALSE;
        }
        else
        {
            RETAILMSG(, (TEXT("Succeed To CreateFile NDS0!\r\n")));
            //return TRUE;
        }

        BOOL SDIO86861Control=DeviceIoControl( m_hFileHandle, IOCTL_NDIS_BIND_ADAPTER, Name, , NULL, NULL );
        if(SDIO86861Control==TRUE)
        {
            RETAILMSG(, (TEXT("Succeed To Control SDIO86861!\r\n")));
            CloseHandle( m_hFileHandle );
            return TRUE;

        }
        else
        {
            RETAILMSG(, (TEXT("Failed To Control SDIO86861!\r\n")));
            CloseHandle( m_hFileHandle );
            return FALSE;
        }
#endif
        return TRUE;
    }
    else
    {
        //Power Down SDIO86861
        DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\SDIO86861"), D4, POWER_NAME);
        SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\SDIO86861"), POWER_NAME, D4);

        //Close NetworkCard
        WCHAR Name[]=_T("SDIO86861\0");
        HANDLE m_hFileHandle = CreateFile(_T(, , NULL,OPEN_EXISTING,  FILE_ATTRIBUTE_NORMAL, (HANDLE) INVALID_HANDLE_VALUE);
        if( m_hFileHandle == INVALID_HANDLE_VALUE )
        {            RETAILMSG(, (TEXT("Failed To CreateFile NDS0!\r\n")));
             return FALSE;
        }
        else
        {            RETAILMSG(, (TEXT("Succeed To CreateFile NDS0!\r\n")));
        }

        BOOL SDIO86861Control=DeviceIoControl( m_hFileHandle, IOCTL_NDIS_UNBIND_ADAPTER, Name, , NULL, NULL );
        if(SDIO86861Control==TRUE)
        {            RETAILMSG(, (TEXT("Succeed To Control SDIO86861!\r\n")));
             CloseHandle( m_hFileHandle );
        }
        else
        {
             RETAILMSG(, (TEXT("Failed To Control SDIO86861!\r\n")));
             CloseHandle( m_hFileHandle );
             return FALSE;
        }     //写注册表,此注册表用于WiFi休眠唤醒之后是否启动WiFi
        //[HKEY_LOCAL_MACHINE\Comm\NdisPower]
        //"SDIO86861"=dword:00000004
        reg.Create(HKEY_LOCAL_MACHINE, _T("Comm\\NdisPower"));
        reg.SetDW(TEXT();
        return TRUE;
    }

    return FALSE;
}

CE5 WiFi开关的更多相关文章

  1. win8 wifi开关显示关闭,且设置里面wifi开关显示灰色的解决办法

    只要从华硕官网下载驱动,电源管理驱动,安装下面显示的几个软件即可,然后重启电脑,即可看见wifi热点,另外设置里面的wifi开关也将显示正常(刚开始安装了个驱动人生根本没用,最后在华硕官网下载了个电源 ...

  2. 联想电脑 Wifi开关开不了

    "VirtualBox Host-Only Network" 没有有效的IP配置  未修复 自己电脑显示 控制面板>网络和Internet>网络连接 VirtualBo ...

  3. Android 监听 WiFi 开关状态

    Android 监听 WiFi 开关状态 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854309 本文出自[赵彦军的博客] ...

  4. 逗比的wifi开关

    笔记本会出现网卡开机不能用的现象.具体表现为:网卡没有禁用,但是搜索不到无线信号.适配器选项框里面选中无线网卡,然后诊断这个链接提示启用无线功能.然后我点击应用此修复就能搜索到无线信号了.问题是,电脑 ...

  5. 【Python】wifi开关测试

    #!/usr/bin/python # -*- coding: UTF-8 -*- import os import time def find_device(): os.system('adb ki ...

  6. Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯

    1. Arduino IDE配置ESP8266环境 参考:https://www.jianshu.com/p/cb0274d612b5 首先从 Arduino 官网 下载最新版本的 Arduino I ...

  7. 然当装入Ubuntu双系统时,会出现无线硬件开关关闭的问题,当然也就无法连网

    rfkill list all 会出现如下提示 0:ideapad_wlan: Wireless LAN      Soft blocked: no      Hard blocked:yes     ...

  8. Android快捷开关实现(转)

    在Android源码中,提供的快捷开关相对是比较少的,Android4.0系统默认提供的桌面快捷开关AppWidget上只有5种开关(分别是Wifi开关.蓝牙开关.GPS开关.同步开关.亮度设置开关) ...

  9. 【全面完美方案】iPhone 4S WiFi变灰 DIY修复方式

    这是我在一位台湾网友usaretama发表的一篇帖子中看到的,原帖我发表在维维网 如果你有WiFi开关变灰不能切换.WiFi遇到搜不到AP或搜到了连不上,那您就要注意这篇了. 家人的 iPhone 4 ...

随机推荐

  1. 关于 RxJava 技术介绍

    Awesome-RxJava RxJava resources Blog 给 Android 开发者的 RxJava 详解 -强烈推荐 扔物线的文章 讲解非常详细 NotRxJava懒人专用指南 -这 ...

  2. 运行js提示库没有注册错误8002801d的解决办法

    运行js提示库没有注册错误8002801d的解决办法这个错误主要是因为服务器上的windows scripts版本较低,请按下面的链接下载较高版本windows scripts 5.6并在服务器上进行 ...

  3. CentOS 7 中设置启动模式

    1.命令行模式systemctl set-default multi-user.target2.图形模式systemctl set-default graphical.target

  4. linux -- 基于mysql tomcat 部署web项目

    一.导入数据库 二.配置web项目访问端口 vim /var/lib/tomcat8/conf/server.xml <Connector port=" protocol=" ...

  5. SPSS数据分析—描述性统计分析

    描述性统计分析是针对数据本身而言,用统计学指标描述其特征的分析方法,这种描述看似简单,实际上却是很多高级分析的基础工作,很多高级分析方法对于数据都有一定的假设和适用条件,这些都可以通过描述性统计分析加 ...

  6. 常用js,css文件统一加载方法,并在加载之后调用回调函数

    原创内容,转载请注明出处! 为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在“sourceControl ...

  7. ASP.NET jquery.uploadify上传控件中文乱码解决办法(转)

    原文地址:http://blog.csdn.net/ningxi_/article/details/6234725 在一般处理程序上加上这几句话: context.Response.ContentTy ...

  8. mousedown(function(){ return false; })作用

    mousedown(function(){ return false;});  阻止浏览器的默认行为.  比如a你加个空连接,可能会在当前页跳转, 你加了这句,就可以阻止a跳转,然后只执行js函数的代 ...

  9. Windows Store App 访问应用内部文件

    访问应用程序内部的文件可以使用多种不同的方法,13.1节中已经介绍过相关的方法,除此之外,还可以使用文件的URI地址直接对文件进行检索,这种访问方式需要用到StorageFile类的静态方法GetFi ...

  10. Server.UrlEncode()方法 空格转换成了+而非%20

    在ASP.NET MVC 的Control类里提供了该方法.该方法可以很方便的对字符串进行url编码,但小猪今天却发现其将空格编码后变成了“+”而非JavaScript采用的encodeURIComp ...