Network Association
The driver must do the following when associating:
The driver must not associate until its desired SSID has been set through OID_802_11_SSID. The driver must not set its desired SSID based on configuration settings in the registry.
After the SSID is set, the driver can attempt to associate by using the BSSIDs in its BSSID scan list. The driver can select a BSSID that best fits the association. For example, the driver can select the BSSID with the best RSSI value.
If OID_802_11_BSSID is set when the device is associated, then the driver must attempt to associate with the specified BSSID. The device must attempt to associate only if the BSSID belongs to the current desired SSID.
Note If the BSSID has been set through OID_802_11_BSSID, then the 802.11 device attempts to associate with that BSSID even if the BSSID is not in the BSSID scan list.
The driver must not associate with a BSSID unless there is a match between the network configuration settings on the 802.11 device and those advertised in the beacon or probe response from the BSSID. In particular, the device should only associate if there is a match on its network mode (ESS or IBSS), authentication mode, and enabled cipher suites. For more information about 802.11 network configuration settings, see 802.11 Network Configuration.
If the driver cannot find BSSID candidates for the desired SSID in its BSSID scan list, then the driver must attempt to locate a BSSID. It is recommended that the driver perform active scans and send 802.11 probe requests for the desired SSID across all channels that it supports.
After it is associated, the 802.11 device is free to roam to another BSSID based on its own set of rules. For example, the device can roam to another BSSID that has a much better RSSI value than the current association.
Note If the desired BSSID has been set through OID_802_11_BSSID, then the 802.11 device must stay associated with that BSSID and cannot roam. After it is set, the desired BSSID can only be cleared when set through OID_802_11_BSSID to a value of 0xFFFFFFFFFFFF.
Whenever the device associates or reassociates, the driver must make a media connect indication. When making this indication, the miniport driver must follow the rules discussed in Media Status Indications for 802.11 Networks.
After it makes the media connect indication, the driver must do the following:
If the device supports TKIP or AES, then the driver must clear any keys for these cipher suites on the device. These keys are set through OID_802_11_ADD_KEY.
If media streaming was enabled, then the driver must disable media streaming and set its streaming mode to Ndis802_11MediaStreamOff.
The driver must clear the DecryptSuccessCount and DecryptFailureCount counters from the NDIS_802_11_STATISTICS structure. For more information about these statistical counters, see OID_802_11_STATISTICS.