Windows Driver Kit: Network Devices and Protocols
Scanning 802.11 Networks
The 802.11 device can perform two types of network scans:
- Explicit scans
- The 802.11 device performs an explicit scan after receiving an OID_802_11_BSSID_LIST_SCAN set command. When performing explicit scans, the device scans for BSS networks across all supported channels.
- Implicit scans
- The 802.11 device performs an implicit scan on its own without a preceding OID_802_11_BSSID_LIST_SCAN set command. For example, the device might perform implicit scans periodically to update its cached BSSID scan list. It might also perform an implicit scan prior to roaming in order to find a BSSID candidate to associate with.
When performing scans, the device can use the following scanning methods:
- Active scans
- The 802.11 device broadcasts an 802.11 probe request on the channel it is scanning on. The driver uses the zero-length broadcast SSID in the probe request. The driver will add any received 802.11 beacons or probe responses to its cached BSSID scan list.
- Passive scans
- The 802.11 device does not send an 802.11 probe request. Instead, it dwells on a channel for a period of time and adds any received 802.11 beacons or probe responses to its cached BSSID scan list.
The device must do the following when performing an explicit scan in response to a setting of OID_802_11_BSSID_LIST_SCAN:
The driver saves the results of the scan in its BSSID scan list. This driver must update this cache with any additional BSSIDs that it finds while performing implicit scans.
The operating system periodically queries the driver with OID_802_11_BSSID_LIST. The driver must respond to this query with the contents of its BSSID scan list in the following way:
Note The device must not initiate a new scan when queried with OID_802_11_BSSID_LIST.