How to get Signal Strength of 802.11 interfaces in Windows How to use the NDISUIO interface Definitions NDIS - Network Driver Interface Specification NDISUIO - NDIS User-mode I/O DDK - Driver development Kit WRAPI - Wireless Research API RSSI - Received Signal Strength Indication Steps (If you does not have NDISUIO already installed) -Download DDK for your (make sure about the SP you are using) -Install DDK in directory -Open it (from START->DDK->BuildEnvironments->->Build) -Type build -cZ (wait to finish patiently) -Open your network properties and choose install->protocol, choose "I have a disk..." -You will get all the driver files you need under /src/network/ndis/ndisprot -Now start the service typing "net start ndisprot" in a console Now check if the service is working -Go to /src/network/ndis/ndisprot/test -Type "build" -Run /src/network/ndis/ndisprot/test/.../i386/uiotest.exe On Source Depot: -Go to <...>\network\SignalStrength\getDevices -In the file sources, complete -type "build" Be carefull -There are diferent versions of DDK for Windows XP SP1 and Windows XP SP2 and above -The WRAPI is the best example of how to use the NDISUIO service to get information about wireless interface, but it was developed using DDK for Windows XP SP1. Anyway, it is a great source of examples. -The NDISPROT network service must be started manually Be very carefull (About wireless interfaces) -Some of the services defined in the NDISUIO does not work -If you are trying to get the Wireless Access Points list, first ask (OID_802_11_BSSID_LIST_SCAN), and get the list a few seconds after (OID_802_11_BSSID_LIST) -The WRAPI example assumes that the wireless card is the second device in the list, it may not be true in your case -The signal strength information (OID_802_11_RSSI) is not provided in a standart way. This happen probably because the mini-driver supplier do it in a non-standart way. Cisco, for example, provides a value from 0 to 100 But Linksys (WUSB54GP) provides a decibel value (including the negative signal) Additional references http://ramp.ucsd.edu/pawn/wrapi/ http://www.microsoft.com/whdc/devtools/ddk/default.mspx http://www.ndis.com/ \install.htm \src\network\ndis\ndisprot\ndisprot.htm \help\network http://www.wildpackets.com/elements/whitepapers/Converting_Signal_Strength.pdf http://www.microsoft.com/whdc/driver/foundation/WhichDDK.mspx Important note on this!!!! There is no DDK release with Windows XP SP2. For most driver development, the environments and tools available in the Windows Server 2003 DDK should be used. Compile in the Windows Server 2003, Windows XP, or Windows 2000 build environments as appropriate. If you are developing for technologies which are supported only in Windows XP SP2, the appropriate support is provided in the Windows Server 2003 SP1 DDK. The final release date for this DDK has not been announced, but a stable build is available for Beta program customers. Additional note: In Linux simply read /proc/net/wireless