As WlanScan said and you have mentioned, for Wireless LAN Service
In some cases (when already connected to wireless network) the Wireless LAN Service does not ask for scans at all, and the current default behavior is that the Wireless LAN Service only asks the wireless interface driver to scan for wireless networks every 60 seconds in other cases.
In order to track changes to the list of available networks across multiple scans,
1.The application should first register for WLAN_NOTIFICATION_SOURCE_ACM notifications.
2.The WlanScan function can then be called to initiate a scan. The application should then wait to receive the wlan_notification_acm_scan_complete notification or timeout after 4 seconds.
3.Then the application can call the WlanGetNetworkBssList or WlanGetAvailableNetworkList function to retrieve a list of available wireless networks.
This process can be repeated periodically with the application keeping tracking of changes to available wireless networks. For an example, please see Wlsample.