OID_DOT11_DESIRED_SSID_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_SSID_LIST object identifier (OID) requests that the miniport driver set the value of the msDot11DesiredSSIDList management information base (MIB) object to the specified data.
When queried, OID_DOT11_DESIRED_SSID_LIST requests that the miniport driver return the value of the msDot11DesiredSSIDList MIB object.
The msDot11DesiredSSIDList MIB object specifies the list of 802.11 service set identifiers (SSIDs) 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 an service set identifier (SSID) that matches an entry from this list.
The data type for OID_DOT11_DESIRED_SSID_LIST is the DOT11_SSID_LIST structure.
typedef struct DOT11_SSID_LIST {
NDIS_OBJECT_HEADER Header;
ULONG uNumOfEntries;
ULONG uTotalNumOfEntries;
DOT11_SSID SSIDs[1];
} DOT11_SSID_LIST, *PDOT11_SSID_LIST;
This structure includes the following members:
Header
The type, revision, and size of the DOT11_SSID_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_SSID_LIST_REVISION_1.
Size
This member must be set to sizeof(DOT11_SSID_LIST).
For more information about these members, see NDIS_OBJECT_HEADER.
uNumOfEntries
Number of entries in the SSIDs array. A zero value for this member indicates an empty desired SSID list.
uTotalNumOfEntries
Maximum number of entries that the SSIDs array can contain.
SSIDs
The list of desired SSIDs, with each entry formatted as a DOT11_SSID structure.
The operating system will define a desired SSID list containing a single SSID. However, a service developed by the independent hardware vendor (IHV) can define a list containing one or more SSIDs.
An SSID with the uSSIDLength member of the DOT11_SSID structure set to zero is a wildcard SSID. The wildcard SSID matches any SSID.
A desired SSID list containing a wildcard SSID cannot contain other SSIDs. When OID_DOT11_DESIRED_SSID_LIST is set, the miniport driver must fail the request by returning NDIS_STATUS_INVALID_DATA from its MiniportOidRequest function if the SSIDs array contains a wildcard SSID and uNumOfEntries is greater than one.
After the OID_DOT11_CONNECT_REQUEST OID is set, the 802.11 station performs a connection operation to a BSS network only if the SSID of the BSS is in the desired SSID list. If the desired SSID list contains a wildcard SSID, the 802.11 station can connect to any BSS network. The 802.11 station cannot connect to any BSS if its desired SSID list is empty. For more information about connecting to a BSS network, see Connection Operations.
When OID_DOT11_DESIRED_SSID_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_SSID_LIST, SSIDs) + uNumOfEntries * sizeof(DOT11_SSID))
When OID_DOT11_DESIRED_SSID_LIST is set, the miniport driver must fail the set request if the uNumOfEntries member has a value greater than the value of uDesiredSSIDListSize 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_SSID_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_SSID_LIST structure, including all entries in the SSIDs 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_SSID_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 SSIDs array.
For the OidRequest parameter, set the BytesWritten member to zero and the BytesNeeded member to the length, in bytes, of the entire DOT11_SSID_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_SSID_LIST structure, the miniport driver must do the following to complete a successful query request:
For the DOT11_SSID_LIST structure, set the uNumOfEntries and uTotalNumOfEntries members to the total number of entries in the SSIDs array.
For the OidRequest parameter, set the BytesNeeded member to zero and the BytesWritten member to the length, in bytes, of the entire DOT11_SSID_LIST structure. The miniport driver must also copy the entire DOT11_SSID_LIST structure to the InformationBuffer member.
Return NDIS_STATUS_SUCCESS from its MiniportOidRequest function.
The default for the msDot11DesiredSSIDList MIB object is an empty list with uNumEntries set to zero. The miniport driver must set this MIB object to its default whenever the following occurs:
The miniport driver's MiniportInitializeEx function is called.
A method request of OID_DOT11_RESET_REQUEST is made to reset the media access control (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