OID_DOT11_DESIRED_BSSID_LIST
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.
When set, the OID_DOT11_DESIRED_BSSID_LIST object identifier (OID) requests that the miniport driver set the value of the Extensible Station (ExtSTA) msDot11DesiredBSSIDList management information base (MIB) object to the specified data.
When queried, OID_DOT11_DESIRED_BSSID_LIST requests that the miniport driver return the value of the msDot11DesiredBSSIDList MIB object.
The msDot11DesiredBSSIDList MIB object specifies the list of 802.11 basic service set identifiers (BSSIDs) that the 802.11 station uses when connecting to a basic service set (BSS) network. After OID_DOT11_CONNECT_REQUEST is set, the 802.11 station will attempt to connect to a BSS with a BSSID that matches an entry from this list.
The data type for this OID is the DOT11_BSSID_LIST structure.
typedef struct DOT11_BSSID_LIST {
NDIS_OBJECT_HEADER Header;
ULONG uNumOfEntries;
ULONG uTotalNumOfEntries;
DOT11_MAC_ADDRESS BSSIDs[1];
} DOT11_BSSID_LIST, *PDOT11_BSSID_LIST;
This structure includes the following members:
Header
The type, revision, and size of the DOT11_BSSID_LIST structure. This member is formatted as an NDIS_OBJECT_HEADER structure.
The miniport driver must set the members of Header to the following values:
Type
This member must be set to NDIS_OBJECT_TYPE_DEFAULT.
Revision
This member must be set to DOT11_BSSID_LIST_REVISION_1.
Size
This member must be set to sizeof(DOT11_BSSID_LIST).
For more information about these members, see NDIS_OBJECT_HEADER.
uNumOfEntries
Number of entries in the BSSIDs array. A zero value for this member indicates an empty desired BSSID list.
uTotalNumOfEntries
Maximum number of entries that the BSSIDs array can contain.
BSSIDs
The list of desired BSSIDs. For more information about the data type of this member, see DOT11_MAC_ADDRESS.
A wildcard BSSID has the value of 0xFFFFFFFFFFFF. The wildcard BSSID matches any BSSID.
A desired BSSID list containing the wildcard BSSID cannot contain other BSSIDs. When this OID is set, the miniport driver must fail the request by returning NDIS_STATUS_INVALID_DATA from its MiniportOidRequest function if the BSSIDs array contains a wildcard BSSID and uNumOfEntries is greater than one.
If the miniport driver's desired BSS type is set to dot11_BSS_type_infrastructure, the 802.11 station can associate with a BSS only if the following are true:
The service set identifier (SSID) of the BSS is in the miniport driver's desired SSID list. If the desired SSID list contains the wildcard SSID, the 802.11 station can associate with any infrastructure BSS network.
For more information about the wildcard SSID, see DOT11_SSID.
The BSSID of an access point (AP) in the BSS is in the miniport driver's desired BSSID list. If the desired BSSID list contains the wildcard BSSID, the 802.11 station can associate with any AP in the BSS network.
If the miniport driver's desired BSS type is set to dot11_BSS_type_independent, the 802.11 station can join or start an IBSS only if the following are true:
The SSID of the BSS is in the miniport driver's desired SSID list. If the desired SSID list contains the wildcard SSID, the 802.11 station can connect to any IBSS network.
If an IBSS is within range, the 802.11 station can connect if the BSSID of the IBSS is in the miniport driver's desired BSSID list. If the desired BSSID list contains the wildcard BSSID, the 802.11 station can associate with any IBSS within range.
If an IBSS is not within range, the 802.11 station must start the IBSS network. The 802.11 station uses the first entry from the desired BSSID list as the BSSID for the IBSS network. If the desired BSSID list contains the wildcard BSSID, the 802.11 station can use any locally administered unicast media access control (MAC) address as the BSSID for the IBSS network.
Note The 802.11 station cannot connect to a BSS network or start an IBSS if its desired BSSID list is empty.
For more information about the desired BSS type, see OID_DOT11_DESIRED_BSS_TYPE.
For more information about the desired SSID list, see OID_DOT11_DESIRED_SSID_LIST.
When OID_DOT11_DESIRED_BSSID_LIST is set, the miniport driver should ensure that the value of the InformationBufferLength member of the MiniportOidRequest function's OidRequest parameter is at least the value returned by the following formula:
FIELD_OFFSET(DOT11_BSSID_LIST, BSSIDs) + uNumOfEntries * sizeof(DOT11_MAC_ADDRESS))
When OID_DOT11_DESIRED_BSSID_LIST is set, the miniport driver must fail the set request if the uNumOfEntries member has a value greater than the value of uDesiredBSSIDListSize that the driver previously returned through a query of OID_DOT11_EXTSTA_CAPABILITY. In this situation, the miniport driver must return NDIS_STATUS_INVALID_LENGTH from its MiniportOidRequest function.
When OID_DOT11_DESIRED_BSSID_LIST is queried, the miniport driver must verify that the InformationBuffer member of the MiniportOidRequest function's OidRequest parameter is large enough to return the entire DOT11_BSSID_LIST structure, including all entries in the BSSIDs array. The value of the InformationBufferLength member of the OidRequest parameter determines what the miniport driver must do, as the following list shows:
If the value of the InformationBufferLength member is less than the length, in bytes, of the entire DOT11_BSSID_LIST structure, the miniport driver must do the following:
Set the uNumOfEntries member to zero.
Set the uTotalNumOfEntries member to the number of entries in the BSSIDs array.
For the OidRequest parameter, set the BytesWritten member to zero and the BytesNeeded member to the length, in bytes, of the entire DOT11_BSSID_LIST structure.
Fail the query request by returning NDIS_STATUS_BUFFER_OVERFLOW from its MiniportOidRequest function.
If the value of the InformationBufferLength member is greater than or equal to than the length, in bytes, of the entire DOT11_BSSID_LIST structure, the miniport driver must do the following to complete a successful query request:
For the DOT11_BSSID_LIST structure, set the uNumOfEntries and uTotalNumOfEntries members to the total number of entries in the BSSIDs array.
For the OidRequest parameter, set the BytesNeeded member to zero and the BytesWritten member to the length, in bytes, of the entire DOT11_BSSID_LIST structure. The miniport driver must also copy the entire DOT11_BSSID_LIST structure to the InformationBuffer member.
Return NDIS_STATUS_SUCCESS from its MiniportOidRequest function.
The default for the msDot11DesiredBSSIDList MIB object contains a single entry with BSSIDs[0] set to the wildcard BSSID and uNumEntries set to one. The miniport driver must set this MIB object to its default if any of the following occur:
The miniport driver's MiniportInitializeEx function is called.
A method request of OID_DOT11_RESET_REQUEST is made to reset the MAC layer of the 802.11 station and the bSetDefaultMIB member of the DOT11_RESET_REQUEST structure is TRUE.
Requirements
Version |
Available in Windows Vista and later versions of the Windows operating systems. |
Header |
Windot11.h (include Ndis.h) |
See also
Native 802.11 Wireless LAN OIDs