Recognising Wifi on WM5 - Windows Mobile Development and Hacking General

Hello,
I've developed an application on WM4 that associates with 802.11 access-points and also establishes GPRS connections. Connections created with my app work just fine on PocketPC 2002 (WM4). When I ported to PocketPC 2005 (WM5) the application still creates the 802.11 and GPRS connections without error but the device will not recognise the 802.11 connection and always wants to create a connection using GPRS when I open IE or attempt any other IP connection. The only way around this that I've found is to put the phone into flight mode, but since my software is supposed to run on phones, that is not an option since users probably want to recieve calls while they browse. I've seen threads related to this on user forums but so far the only solution I've seen is to disable the phone.
Everything works just fine when WZC creates the 802.11 connection which leads me to believe that there's some IOCTL out there that tells the device to use the 802.11 connection.
Does anyone know the true magic to get around this?

litewoheat said:
Hello,
I've developed an application on WM4 that associates with 802.11 access-points and also establishes GPRS connections. Connections created with my app work just fine on PocketPC 2002 (WM4). When I ported to PocketPC 2005 (WM5) the application still creates the 802.11 and GPRS connections without error but the device will not recognise the 802.11 connection and always wants to create a connection using GPRS when I open IE or attempt any other IP connection. The only way around this that I've found is to put the phone into flight mode, but since my software is supposed to run on phones, that is not an option since users probably want to recieve calls while they browse. I've seen threads related to this on user forums but so far the only solution I've seen is to disable the phone.
Everything works just fine when WZC creates the 802.11 connection which leads me to believe that there's some IOCTL out there that tells the device to use the 802.11 connection.
Does anyone know the true magic to get around this?
Click to expand...
Click to collapse
Have you disable WZC ? If you disable the WZC of device, the Connection Manager can not detect the WiFi card and it use GPRS connection. IE use the service of Connection Manager for detect if a device is connected or no to internet.

WZC
WZC is disabled. With it enabled I cannot control the 802.11 device with NDISUIO.

litewoheat said:
WZC is disabled. With it enabled I cannot control the 802.11 device with NDISUIO.
Click to expand...
Click to collapse
Yes and no.
You can query and set OID value of 802.11 also if NDISUIO is locked by WZC.
IOCTL_NDISUIO_QUERY_OID_VALUE accept NDISUIO_QUERY_OID struct that in WinCE is present the ptcDeviceName variable. Set it with name of device and you can query OID value also if NDISUIO is locket by WZC.
You can select the access point with WZC and prefered network. The functions is WZCQueryInterface and WZCSetInterface.
Ciao Massimo

Really can't use WZC
Thanks for the informative reply. We'd like to turn WZC off for other reasons, mainly the notifications it displays when a new access point is in range. In places where there's metro wifi or just a large concentration of wifi access the notifications are extreeeeemly annoying when they constantly pop up(thanks Microsoft).
Is there a way to disable Connection Manager entirely so that it doesn't get in the way?

litewoheat said:
Thanks for the informative reply. We'd like to turn WZC off for other reasons, mainly the notifications it displays when a new access point is in range. In places where there's metro wifi or just a large concentration of wifi access the notifications are extreeeeemly annoying when they constantly pop up(thanks Microsoft).
Is there a way to disable Connection Manager entirely so that it doesn't get in the way?
Click to expand...
Click to collapse
For notification,you can simply disable from panel control->sound & notification.
For disable Connecion Manager, you must kill the process connmgr.exe with a task manager. Without connecion manager, the wifi remains enabled also you syncronize the device with activesync. The collateral effect is that IE don't work. The Connection Manager is a wrapper between applications and socket. Without CM, the applications can not establish a connection also is the device is effectively connected to network.
You can also disable WZC with DeactivateDevice API.
if I can give a suggestion to you, don't disable WZC or Connection Manager... the negative effect is more of positive effect. Try to use my prev solution.
I am developing a advanced manager of wireless with thie solution posted and work very well. I can select a my prefered AP, retrive RSSI and search SSID without disable WZC a CM.
Ciao Massimo

I'll give it a try, but...
OK, I think you've convinced me. Can I programatically disable the notifications? I can't really expect our users to do that.

litewoheat said:
OK, I think you've convinced me. Can I programatically disable the notifications? I can't really expect our users to do that.
Click to expand...
Click to collapse
For disable notifications edit the registry:
HKCU\ControlPanel\Notifications\{DDBD3B44-80B0-4b24-9DC4-839FEA6E559E}
and set
Options = 0
Ciao Massimo

How to link in wzcsapi.lib?
So I guess I'm not smart enough to figure out how to link in the library wzcsapi.lib. I'm using VS2005. I have Platform Builder so I do indeed have the correct files. I don't get a cannot file file linker error but I do get linker errors for every WZC function in my app. I tried the wzctool sample with the same outcome.
From what I can tell the wzcsapi.lib does have the exports I need but I just can't get VS2005 to link.
Is there some magic to use the WZC functions?

If you use Platform Builder, add into your catalog platform "Wireless LAN (802.11) STA - Automatic Configuration and 802.1x". After sysgen, you found wzcsapi.lib into $(_PROJECTROOT)\cesysgen\oak\lib\$(_CPUINDPATH)\ folder.

No using PB
I'm not using Platform Builder. I'm using VC2005.

Is there a solution for this issue

Using a dll without the correct lib file.
First my guess at the problem, and then a couple of questions.
Library files are compiler specific. The one you're using is for Platform Builder. Platform Builder's compiler probably differs from the one in VS2005.
Another way to use wzcsapi.dll is to link to it at run time using LoadLibrary and GetProcAddress like so
Code:
INTFS_KEY_TABLE GuidTable;
PINTFS_KEY_TABLE pGuidTable;
pGuidTable = &GuidTable;
HMODULE hMod = LoadLibrary (_T("wzcsapi.dll"));
if (hMod==NULL) {
_stprintf(buff, , ErrorCode);
MessageBox(NULL, _T("Failed to load wzcsapi.dll"), _T("ERROR"), MB_OK);
return;
}
_WZCEnumInterfaces pfnWZCEnumInterfaces = (_WZCEnumInterfaces) GetProcAddress (hMod, _T("WZCEnumInterfaces"));
if (pfnWZCEnumInterfaces == NULL) {
MessageBox(NULL, _T("Failed find function"), _T("ERROR"), MB_OK);
return;
}
DWORD ErrorCode = pfnWZCEnumInterfaces(NULL, pGuidTable);
if (ErrorCode!= ERROR_SUCCESS )
{
ErrorCode=GetLastError();
_stprintf(buff, _T("WZCEnumInterfaces Failed--error code %d"), ErrorCode);
MessageBox(NULL, buff, _T("ERROR"), MB_OK);
return;
}
Now for the question part .
How does a miniport driver originally tell the connection manager to consider using the miniport when making and IP connection?
Also, I'd like to be able to request 802.11 scans and set OID_802_11_BSSID to force association with a particular access point. Is this best done using CreateFile/DeviceIoControl or using the WZC funtions? I'll guess using DeviceIoControl, since it doesn't look possible using WZC functions? Can I do this with connection manager running? Anyone have sample code for getting/setting one of the OID_802_11 oid's?
Thanks,
SetoK
Thanks
SetoK

Related

V.110 datamodem in TAPI

I wana use V.110 9600....
I think I must use lineSetDevConfig(...)
but this function always return 0 and do nothing
Can you pass some source codes?
I wrote a DLL in eVC that makes a Tapi datamodem call and then called it from a simple eVB program just to show what functions it contained.
Have a look at the code for the DLL and you will see how I made a datamodem connection using TAPI.
No...No..No..
I know it all
FROM http://msdn.microsoft.com/library/d...ry/en-us/APISP/html/sp_tsp_cellbeararinfo.asp
"9,600 bps (V.32 compression setting)
Note This value is the standard setting used for 9,600 bps circuit switched data calls."
IN TEORY
I can select V.34 or V.110
IN DOWN OF PAGE
"An application may use lineGetDevConfig to determine the current settings."
...and I think I can use lineGetDevConfig and lineSetDevConfig
...but how?
Hello,
many thanks for the source code!!!javascript:emoticon(':wink:')
javascript:emoticon(':wink:')
I want to use the XDA for internet access via my laptop. With the new Rom version a programm WMODEM is delivered with the device. But with WMODEM there is only a GPRS connection possible.javascript:emoticon('')
javascript:emoticon('')
So I am searching for a programm like WMODEM which makes ist possible to use the XDA as a modem with which a can dial numbers via ATD...
Is this possible?
If yes where ?

Program to handle GPRS automaticlly

I would like a program that can do the following:
The main purpose is that the program should be 100% automatic and will after a easy configuration be left alone and handle GPRS to be online whenever there are GSM/GPRS available.
* Create a connection (in system/connection) automaticly from a file or something.
* With the created connection above, the program should automaticly connect. From suspend mode and after a soft reset.
Anyone knows a good program that can do this or a great programmer that can supply features like the above (and more).
Best regards
Zomen
advise
1. use ConnMgrEstablish to establish GPRS connection
2. Create a hide window to received message when the connection status changing.
3. soft reboot issue: writting a service to these or config the target device to run your app at startup time.
4. active device on suspended state mode: try API CeSetUserNotification
Hi Zomen,
I think you will need to look at Connection Manager API. It handles all low level connections on the device, including GPRS. It can be found here -
http://msdn.microsoft.com/library/d...s/apippc/html/ppc_cnmn_connection_manager.asp
And here is an example -
http://www.codeguru.com/cpp/w-p/ce/pocketpc/article.php/c7355/
Cheers,
Dav
Thank you for the answers but how about using RAS to make the connection?
And remember that the purpose of the application is to work on a Mobile 5 device.
/Zomen
hi,
Hmm, I think it should be ok to work on Mobile 5, but I have only been using 4.21 so cant be sure. However, there is a helper sample which comes with Embedded Visual C++ 4. If you have EVC4 You can find it here -
C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Samples\Mfc\Cmhelper
And there is further information here about the sample here -
http://msdn.microsoft.com/library/d...s/guide_ppc/html/ppc_about_cmhelpersample.asp
You can use the sample to build a GPRS connection exe which will handle GPRS connections for you. At least on 4.21, havent tried on Mobile 5.
Cheers

RAS connection - how do I do it?

I want to make a connection to a server either via GPRS or via Activesync when cradled.
I used to use the API call RasDial on an old Windows CE 3.0 programme but this does not appear to make a connection under WM5 and fails to dial up a GPRS connection. It opens the port, etc but fails to dial.
Is there a simpler way to make a connection? Do I simply try to open a TCP/IP connection and the OS does it for me?
Any and all ideas appreciated!!
Dave...
Use Pocket PC connection manager API to make
a GPRS connection. That is the PPC way. RAS API
can be used but connection manager is better for
some things.
Houser
Houser said:
Use Pocket PC connection manager API to make
a GPRS connection. That is the PPC way. RAS API
can be used but connection manager is better for
some things.
Houser
Click to expand...
Click to collapse
Thanks. I found a sample of how to do this in the SDK so I will modify my code to use this instead and see if it all works.
Dave...

vpn connection (pptp) disconnects

I want to use PPTP vpn connection to my work together with Remote Desktop (Teminal Service) application.
The PPTP vpn connection is established successfully.
From my work PC I can ping the pptp ip address of my PPC.
However if I switch to an application which would generate internet traffic (such as terminal services, internet explorer) my PPTP connection drops.
On my vpn server I get the logs and see the disconnect reason as "user requested)
What is the problem ?
Thanks...
hi,
I guess nobody has such experience with vpn connections.
where can I find information about this problem ?
thanks
Hi, I have the same problem more or less
see http://forum.xda-developers.com/showthread.php?t=291208
I have the same problem when trying to use Skype. My office also requires the use of a VPN (PPTP) when connecting via the wifi.
Skype connects, I can make calls, but the connection is dropped after 30s (the VPN is closed). Oddly enough, it I have the impression I prevent the VPN connection from dropping by using Pocket Internet Explorer at the same time (I have tried creating a website that automatically refreshes every 10s, but this didn't keep the VPN open). The Messaging client als shows odd VPN behaviour: it always closes the VPN, and opens it every time send/receive is selected.
I suspect not all programs keep the VPN open, even despite the fact that those programs are generating traffic over the connection.
Any hints or suggestions are greatly appreciated!
Jorg
(sorry, I can't edit posts in Opera Mini)
MarsRover: I have changed the AlwaysOn registry setting in the registry (in the folder of my work vpn). Ii appears to have changed the Messaging behaviour (but I need further testing to be sure). Tomorrow I'll see if it changed the Skype connection.
Thanks for the suggestion, if it works it ought to be put in the FAQ.
Jorg
Hi,
MarsRover,
I couldn't understand the solution. Can you explain ?
My situation is :
I am using Wifi connection to access internet. This connection is selected as my internet connection.
My pptp vpn connection is set under my Work connection.
So when I use the pptp connection I connect to Work over Internet.
But then it gets dropped if I open internet explorer.
If I set "*/*" to my intranet addresses, I have to connect to everywhere over my VPN connection. This is not good because I don't want to use VPN connection for Web browsing etc.
There must be another way ? Don't you think so ?
Btw, if I set AlwaysOn to "1" in registry , and then check it back after a connection is made, I see it is "0" again.
Hi
You do not have to redirect all traffic through the VPN you can pick and choose under settings>connections>advanced>exceptions just add the urls you need. ie so instead of */* use the specfic range ie 10.0.0.*/* or whatever range your work uses. One more issue however if the wirless ip range overlaps the internal VPN work range you may still have isssues. ie if your wireless ip address range is 10.0.0.x and your vpn range is 10.0.0.x then even if you add 10.0.0.*/* in the exceptions it may still try the wireless link rather than the vpn link for your TS etc. If you get my drift. There is a discussion on this here:
http://forum.xda-developers.com/archive/index.php/t-217422.html
Stephen
Thank you Stephen.
In fact, I am aware of how the exception list works. I can add the IP addresses which I want to reach via work vpn.
However, I still wish that there was a way to use VPN connection manually without using an exception list.
Isn't this possible ?
mrmrmrmr said:
.... This is not good because I don't want to use VPN connection for Web browsing etc....
Click to expand...
Click to collapse
This is good for me because I DO WANT to use VPN for all network access.
mrmrmrmr said:
Btw, if I set AlwaysOn to "1" in registry , and then check it back after a connection is made, I see it is "0" again.
Click to expand...
Click to collapse
It happens if you use settings->connections to view/change settings
hello...
i haven't a clue if this helps...
in my firm theres a cisco vpn connection... i search a long time for a programm that i can use with that vpn connection...
finally i find one... NCP Secure Client... works for me... maybe it helps you...
futureshock said:
hello...
finally i find one... NCP Secure Client... works for me... maybe it helps you...
Click to expand...
Click to collapse
where can I find it ?
does it connect to cisco vpn concentrator / ASA ?
there is also AnthaVPN from AnthaSoft but it's not very reliable.
PPTP
Bluefire seems to work fine with IPSec, but I need PPTP (IPSec requires NAT-T in most cases with GPRS/3G).

Disable Wifi Access! Any suggestions please?

Hi everyone,
I'm new to this forum, and was wondering if anyone can help me out. I have an Acer S200, and due to restrictions at work, we need to disable internet access from our mobile devices.
I have read various posts that state that this can be achieved by disabling wifi access by altering the registry keys, however none of the methods that i have come accross seem to apply to my Acer S200 mobile 6.5.
Sorry to be a pain, but does anyone know how i can do this?
Thanks in advance everyone.
alan
What are you talking about? Disable wifi? Why do you start it at the first place?
Internet access on mobiles can be done by active synch, data connection, wifi. It 's up to you to disable them by comm manager and active synch.
Maybe I get you wrong. What exactly do you need to stop?
Hi fresco,
thanks for the reply. Well, the organisation wants to prevent the devices from having the ability to connect to the internet.
I understand that there may not be a complete solution, but at the very least I would definitely like to disable wifi completely, since this is what I've read others have done. The devices do not have data connection plans, hence this option isn't a problem.
Apparently I can disable the wifi by altering the registry keys? Any ideas anyone?
Thanks.
hiya...
any ideas guys?
can anyone direct me to anything that could be remotely useful to the above?
Thanks
Hi alan,
let me get this straight.You work at an organization that has unencrypted wifi access
but doesn`t want it`s employees using it?
If your company`s wi-fi network gives access to the internet to anyone that connects to it why doesn`t the IT manager set a password to the network or enable mac filtering (prevents unauthorized devices-mac addresses from connecting to the network)?
I don`t know how you would disable the wifi chip from the registry
but if i were you i would buy a second phone for work use only.
SKTools
Try SKTools maybe there is a solution in the app.
You can disable the WiFi in registry:
Go to "[HKEY_LOCAL_MACHINE\System\State\Hardware]" and change the WiFi string to 0.
In the Comm. Manager the WiFI is disappeared and you are not able to connect.
thanks brainmaster.
the method that you suggested only removes the wifi display from comm manager, however that can easily be bypassed using the windows menu, to open wifi.
thanks...
then delete that one from the windows menu from Device > Windows > Start Menu

Categories

Resources