本文主要是介绍wince 下WIFI 休眠和启用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
欢迎加入Wince技术讨论群QQ#326444254
wifi 的驱动确实比较复杂,好不容易移植到3530平台,确发现 wifi 不工作,修改GPIO和中断线,wifi工作起来了。
当系统需要休眠时,发现系统已经当机,手工禁用wifi后,系统能休眠了,但启动后,wifi就无法工作了。 到处check,原来是控制wifi 的LDO没有工作。软件让wifi 关闭很简单,
if(ERROR_SUCCESS == SetDevicePower(L"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\tiwlnapi1", POWER_NAME, DeviceState))
{
RETAILMSG(1, (L"PWK:set wifi power state %x\r\n", DeviceState));
},就是图标是不变的(这部分应该是wince 的ndis边的功能),但是从电流上看wifi已经没有工作了。
但是重新启动后,wifi还是自动启动了。
让系统启动后wifi 禁止也比较容易,只需要在注册表中加入下行(可以在Enable 和Disable后compare 你dump出的register),WIFI是禁用了,但是那个讨厌的图标还是出来了。并且用SetDevicePower是打不开的,因为这时wifi 被NDIS禁止了。
看来要实现手工禁用的功能,还要在类似WZCSetInterface的函数上下功夫啊!
[HKEY_LOCAL_MACHINE\Comm\NdisPower]
"TIWLNAPI1"=dword:00000004
wifi工作的情况下,无法让系统进入suspend的状态,故,休眠前 SetDevicePower 到D4;wake up后SetDevicePower D0。
这篇关于wince 下WIFI 休眠和启用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!