If you are starting the development of some software that must manage WiFi connections and settings in Windows, you will be faced with the following problem. There are two versions of Windows that have API for WiFi networks management: Windows XP Service Pack 2 (or SP3) and Windows Vista, and both versions use absolutely different APIs for wireless network management.
Windows XP SP2/SP3
- uses the "Wireless Zero Configuration" (WZC) API. This API is almost undocumented and there aren't any examples how to use it, although this API can perform all necessary operations with WiFi connections and Windows XP SP2/SP3 is the most popular version of Windows at present.
Windows Vista
- uses the "Native WiFi" API. This is a new API that allows you to manage WiFi networks, this API is simpler and more documented, although there is only one example how to use it. You can find this example for the C++ language in the Vista SDK.
There is a patch from Microsoft that allows you to use part of the "Native WiFi" API in Windows XP SP2, though it means that your software must download and install this patch. Unfortunately, we have tried using the "Native WiFi" API for XP in our projects and we have found out that it does not work properly in some cases. It returns some data fields incorrectly and does not set some of them at all. After studying it in detail, we have discovered that the "Native WiFi" API for Windows XP is only a wrapper for the WZC API and it is much better to use the WZC API directly.
WiFi-Manager is a developer tool that allows you to manage WiFi connections and settings in Windows XP SP2 and Windows Vista using one set of API functions. Also, WiFi-Manager provides a COM interface for all API functions so you can simply control WiFi settings from VB or such .NET languages as VB.NET or C#. WiFi-Manager contains functions for enumerating WiFi adapters, enumerating available networks and getting their settings, functions for connecting and disconnecting to networks, functions for working with wireless networks profiles, etc.
WiFi-Manager - Features
Supports Windows XP SP2/SP3, Windows Vista and Windows 7 Beta via one set of API.
Supports Windows 2000/2003/XP/Vista/Windows 7 Beta via one set of API (Windows 2000/2003 for Advanced WiFi-Manager only).
Supports Windows 64-bit platforms: Windows 2003 x64, Windows XP x64 and Windows Vista x64.
Supports networks with Open / Shared / WPA / WPA-PSK / WPA2 / WPA2-PSK authentification.
Supports networks with WEP / TKIP / AES data encryption.
Supports networks with Radius server (802.1x authentication).
Supports direct communication with Windows 2000/2003/XP, Windows Vista/Windows 7 Beta NativeWiFi adapter drivers (Advanced WiFi-Manager only).
Own 802.1X supplicant (Advanced WiFi-Manager only) with EAP-TLS, PEAP-MSCHAPv2, EAP-TTLS-MD5, EAP-MD5, EAP-MSCHAPv2 support.
API for enumerating WiFi adapters and getting / setting their properties.
API for enumeration available wireless networks and getting their properties.
API for connecting / disconnecting to wireless networks.
API for working with network profiles: creating /loading / saving / changing network profiles. For all Windows XP SP2/SP3, Windows Vista and Windows 7 Beta: network profiles are stored in XML format according to Windows Vista Native WiFi specifications.
Full support for configurations with multiple networks with same SSID (Advanced WiFi-Manager only, partial support in WiFi-Manager).
Supports networks with hidden SSIDs (nonbroadcast networks).
API for working with Windows Firewall.
API for working with general network adapters (both WiFi and LAN).
API for adapters MAC address management.
Additional API for such operations as pinging, getting / setting IP address of adapters, etc.
Unicode support.
Can be used with a lot of programming languages (any language that supports DLLs or COM objects).
Sample projects with complete source code for various programming languages (C/C++, Delphi, VB, VB.NET, C#) are available as well as detailed documentation for APIs, structures and types.
|