Requesting Explicit Scan Operations
Important The Native 802.11 Wireless LAN interface is deprecated in Windows 10 and later. Please use the WLAN Device Driver Interface (WDI) instead. For more information about WDI, see WLAN Universal Windows driver model.
The 802.11 station performs an explicit scan operation when the OID_DOT11_SCAN_REQUEST object identifier (OID) is set. When set, this OID invokes the station's media access control (MAC) layer management entity (MLME) MLME-SCAN.request service primitive (defined in Clause 6.3.3 of the IEEE 802.11-2012 standard).
The data type that accompanies the set request of OID_DOT11_SCAN_REQUEST is the DOT11_SCAN_REQUEST_V2 structure. Some of the members of this structure directly correspond to the parameters of the MLME-SCAN.request service primitive as defined by the following table.
|Service primitive parameter||DOT11_SCAN_REQUEST_V2 member|
Other members of the DOT11_SCAN_REQUEST_V2 structure indirectly correspond to the rest of the parameters of the MLME-SCAN.request service primitive, as described below:
Instead of requesting a scan on a single service set identifier (SSID), the DOT11_SCAN_REQUEST_V2 structure allows an explicit scan operation to be performed on one or more SSIDs. The list of SSIDs are defined though the udot11SSIDsOffset and uNumOfdot11SSIDs members of this structure.
The 802.11 station performs the scan operation using the zero-length broadcast SSID if any of the following are true:
An entry in the list of SSIDs defines the broadcast SSID.
The uNumOfdot11SSIDs member has a value of zero.
ProbeDelay, MinChannelTime, and MaxChannelTime parameters
The DOT11_SCAN_REQUEST_V2 structure allows an explicit scan operation to be performed on one or more PHYs supported by the 802.11 NIC. Each PHY is configured for the scan operation through the DOT11_PHY_TYPE_INFO structure. The following table defines the relationship between the members of this structure and the parameters of the MLME-SCAN.request service primitive.
|Service primitive parameter||DOT11_PHY_TYPE_INFO member|
If the miniport driver is operating in Extensible Station (ExtSTA) mode, the 802.11 station configures each PHY used in the scan operation with its own values for these parameters.
The channel list is defined through the uChannelListSize and ucChannelListBuffer members of the DOT11_PHY_TYPE_INFO structure, allowing a separate channel list to be defined for each PHY used in the scan operation.
If the miniport driver is operating in Extensible Station (ExtSTA) mode, the operating system will not define the channel list. Instead, the 802.11 station scans all of the channels that are valid for the regulatory domain that the station is currently operating within.
The DOT11_SCAN_REQUEST_V2 structure extends the MLME-SCAN.request service primitive in the following ways:
- The scan type, specified through the dot11ScanType member, can be either an active or passive scan or a combination of both methods. If the dot11ScanType member is set to dot11_scan_type_auto, the following cases are possible: In Windows Vista, the 802.11 station can use any scanning method when it performs the scan operation. Beginning with Windows 7, if the miniport driver is not joined to or hosting a BSS or IBSS, the 802.11 station should perform an active scan when not restricted by regulatory requirements. In this case, the 802.11 station must complete a scan request within 4 seconds and must return the correct list of available WLAN networks.
- If the bUseRequestIE member is set to TRUE, the 802.11 station must add the 802.11d Request information elements (IE) defined through the bRequestIDsOffset and uNumOfRequestIDs members to any Probe Request frames that the station sends when performing an active scan. Note The miniport driver must ignore the bUseRequestIE, bRequestIDsOffset, and uNumOfRequestIDs members if the IEEE 802.11d dot11MultiDomainCapabilityEnabled management information base (MIB) object is set to FALSE or the station is performing a passive scan. For more information about the dot11MultiDomainCapabilityEnabled MIB object, see OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED.
Beginning with Windows 7, the miniport driver should attempt to maintain a stable connection. To do this, the driver should scan a few channels at a time and move back to its active channel when it needs to send and receive data. When the driver has an infrastructure association with an AP, it can also set the power save (PS) bit in a null data packet. By doing this, the driver requests the AP to buffer packets until it can return to its active channel.