CE5 WiFi开关
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开关的更多相关文章
- win8 wifi开关显示关闭,且设置里面wifi开关显示灰色的解决办法
只要从华硕官网下载驱动,电源管理驱动,安装下面显示的几个软件即可,然后重启电脑,即可看见wifi热点,另外设置里面的wifi开关也将显示正常(刚开始安装了个驱动人生根本没用,最后在华硕官网下载了个电源 ...
- 联想电脑 Wifi开关开不了
"VirtualBox Host-Only Network" 没有有效的IP配置 未修复 自己电脑显示 控制面板>网络和Internet>网络连接 VirtualBo ...
- Android 监听 WiFi 开关状态
Android 监听 WiFi 开关状态 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854309 本文出自[赵彦军的博客] ...
- 逗比的wifi开关
笔记本会出现网卡开机不能用的现象.具体表现为:网卡没有禁用,但是搜索不到无线信号.适配器选项框里面选中无线网卡,然后诊断这个链接提示启用无线功能.然后我点击应用此修复就能搜索到无线信号了.问题是,电脑 ...
- 【Python】wifi开关测试
#!/usr/bin/python # -*- coding: UTF-8 -*- import os import time def find_device(): os.system('adb ki ...
- Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯
1. Arduino IDE配置ESP8266环境 参考:https://www.jianshu.com/p/cb0274d612b5 首先从 Arduino 官网 下载最新版本的 Arduino I ...
- 然当装入Ubuntu双系统时,会出现无线硬件开关关闭的问题,当然也就无法连网
rfkill list all 会出现如下提示 0:ideapad_wlan: Wireless LAN Soft blocked: no Hard blocked:yes ...
- Android快捷开关实现(转)
在Android源码中,提供的快捷开关相对是比较少的,Android4.0系统默认提供的桌面快捷开关AppWidget上只有5种开关(分别是Wifi开关.蓝牙开关.GPS开关.同步开关.亮度设置开关) ...
- 【全面完美方案】iPhone 4S WiFi变灰 DIY修复方式
这是我在一位台湾网友usaretama发表的一篇帖子中看到的,原帖我发表在维维网 如果你有WiFi开关变灰不能切换.WiFi遇到搜不到AP或搜到了连不上,那您就要注意这篇了. 家人的 iPhone 4 ...
随机推荐
- Java Performance - 如何调查解决 CPU 问题
随着硬件的发展,往往服务器会配置足够的 CPUs, Java Server/服务器不太有 CPU 问题:但是偶尔因为 代码海量循环 或者 线程安全性(thread safe), 还是会带来 CPU 问 ...
- 解决在国内更新android sdk时连不到服务器的问题
修改hosts文件 Windows下:打开C:\Windows\System32\drivers\etc\hosts Linux下:vi /etc/hosts 在文件尾加入如下两行: 74.125.2 ...
- 樱花漫地集于我心,蝶舞纷飞祈愿相随---总结 适者:survival of the fittest 适者:survival of the fittest
编程什么的最讨厌了,总是忘记一些乱七八糟的,看起来并没有什么乱用的,比如(::“<>{}, 还有交作业的时候总是忽略大小写<(▰˘◡˘▰)> 马马虎虎莫名其妙就错了,其实大小写 ...
- ASP.NET复合控件
① DropDownList 下拉列表 会被编译为select option ps.name 服务端常用,id 客户端常用 一般用法: 一.将数据放进去 方法一:同WinForm相同,给定数据源,然后 ...
- MYSQL57密码策略修改
1.查看当前的密码测试 show variables like 'validate_password%';
- 解决Ubuntu 下 vi编辑器不能使用方向键和退格键问题
转自:http://blog.csdn.net/sky101010ws/article/details/51012103 使用vi命令时,不能正常编辑文件,使用方向键时老是出现很多字母 这个问题主要是 ...
- UDK:AdventureKit 攀爬系统
[目标] AdventureKit攀爬系统 [思路] [步骤] 1 拷贝 2 设置config,UDKGame\Config\DefaultEngine.ini 添加包 [UnrealEd.Edito ...
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)
一.实现效果 二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...
- iOS开发UI篇—无限轮播(循环展示)
iOS开发UI篇—无限轮播(循环展示) 一.简单说明 之前的程序还存在一个问题,那就是不能循环展示,因为plist文件中只有五个数组,因此第一个和最后一个之后就没有了,下面介绍处理这种循环展示问题的小 ...
- Android Studio插件推荐(PreIOC,GsonFormat)
好的插件能加快项目的开发速度,尤其是一些针对重复性的代码的插件,所以在这里向大家推荐2款不错的插件,如果以后发现新的好的插件,还会继续推荐,同时欢迎大家推荐 GsonFormat GsonFormat ...