Share via


OID_802_11_BSSID_LIST

When queried, the OID_802_11_BSSID_LIST OID requests that the miniport driver return a list containing all of the detected BSSIDs and their attributes. This list contains all the BSSIDs that the device detected during its most recent scan of potential BSSs. The miniport driver must respond to this OID as quickly as possible.

If this OID is queried without a preceding OID_802_11_BSSID_LIST_SCAN set request, and the device is active, the miniport driver must return a list of BSSIDs that are valid to join based on the device's current configuration.

If this OID is queried 6 seconds or longer after OID_802_11_BSSID_LIST_SCAN is set, the list of BSSIDs must also contain all of the BSSIDs found during the most recent network scan.

For more information about the procedures to be followed for network scans, refer to Scanning 802.11 Networks.

For IEEE 802.11a- and IEEE 802.11b-capable NICs, the miniport driver must return a complete list of the IEEE 802.11a and IEEE 802.11b BSSIDs.

The data type for this OID is the NDIS_802_11_BSSID_LIST_EX structure, which is defined as follows:

    typedef struct _NDIS_802_11_BSSID_LIST_EX {
         ULONG NumberOfItems;
         NDIS_WLAN_BSSID_EX Bssid[1];
 
    } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX;
  

The members of this structure contain the following information:

  • NumberOfItems
    The number of items contained in the Bssid array. This array must contain at least one item. If there are no BSSIDs detected, NumberOfItems must be set to zero.

  • Bssid
    Specifies an array of NDIS_WLAN_BSSID_EX structures.

The NDIS_WLAN_BSSID_EX structure is defined as follows:


typedef struct _NDIS_WLAN_BSSID_EX {         ULONG Length;
 NDIS_802_11_MAC_ADDRESS
 MacAddress;         UCHAR Reserved[2];
         NDIS_802_11_SSID Ssid;
         ULONG Privacy;
         NDIS_802_11_RSSI Rssi;

         NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
         NDIS_802_11_CONFIGURATION Configuration;

         NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
         NDIS_802_11_RATES_EX SupportedRates;
 ULONG
 IELength;         UCHAR IEs[1];
 } NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX;

The members of this structure contain the following information:

  • Length
    The length, in bytes, of the NDIS_WLAN_BSSID_EX structure. The structure must be aligned to a 4-byte address boundary. Therefore, Length must contain a value that is a multiple of 4 bytes. From 0 through 3 bytes of padding can exist after the end of the IEs member.

  • MACAddress
    A media access control (MAC) address. Each access point has a unique MAC address that is the same as the BSSID.

  • Reserved
    Reserved. Do not use. This member maintains the DWORD alignment of the structure.

  • Ssid
    An SSID as defined in the NDIS_802_11_SSID structure. For more information about this structure, see OID_802_11_SSID.

  • Privacy
    Specifies a WEP/WPA/WPA2 encryption requirement. A value of 0 indicates that privacy is disabled. A value of 1 indicates that privacy is enabled.

  • Rssi
    The received signal strength indication (RSSI), in dBm. Typical values range from -10 through -200 dBm.

  • NetworkTypeInUse
    The network type as defined in the NDIS_802_11_NETWORK_TYPE enumeration. For more information about this enumeration, see OID_802_11_NETWORK_TYPE_IN_USE.

    For access points or IBSS nodes that are IEEE 802.11g-capable, the driver must set NetworkTypeInUse to Ndis802_11OFDM24. This will also imply that the access point or IBSS node supports Ndis802_11DS.

  • Configuration
    The radio parameter configuration as defined in the NDIS_802_11_CONFIGURATION structure. For more information about this structure, see OID_802_11_CONFIGURATION.

  • InfrastructureMode
    The network mode as defined in the NDIS_802_11_NETWORK_INFRASTRUCTURE enumeration. For more information about this enumeration, see OID_802_11_INFRASTRUCTURE_MODE.

  • SupportedRates
    The set of supported rates that are defined in an NDIS_802_11_RATES_EX array. The array contains a set of 16 bytes (defined as UCHAR). Each byte contains a data rate in units of 0.5 Mbps. Set unused entries, if any, at the end of the array to 0.

  • IELength
    The number of bytes in the IEs array. IELength must not contain any padding. The driver must set this to 0 if there are no elements within the IEs array.

  • IEs
    The information elements (IEs) from beacon or probe response messages. The IEs must be from the last beacon or probe response received from the BSSID. If an IE is available in only one message, the driver must merge the IE with the other IEs found in the last beacon or probe response messages.

The list of information elements within the IEsmember must include the following:

  • The three fixed-size IEs (timestamp, beacon interval, and capability information), from the last received beacon or probe response message.

    Note   The list of information elements in the IEs member must start with the fixed-length IEs. The NDIS_802_11_FIXED_IEs structure must be used for the list of fixed-length IEs.

     

  • All variable-length IEs in the order that they were received in the last received beacon or probe response.

  • Any variable-length IEs that were not in the last received beacon or probe response.

    For example, the TIM IE is not part of a probe response. If a probe response message was the last message received, the TIM information element (IE) from the last beacon message received is added. Any other IEs that were in the beacon message, but not in the probe response, are also added. If the beacon message was the last message received and the SSID is blank, the SSID from the last probe message received is added. Any other variable-length IEs that were in the probe response, but not in the beacon message, are also added.

The NDIS_802_11_FIXED_IEs structure is used to list the fixed-length information elements:


typedef struct _NDIS_802_11_FIXED_IEs {         UCHAR Timestamp[8];
         USHORT BeaconInterval;

         USHORT Capabilities;
 } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs;

For the definition of these members, see section 7.3.1 in the IEEE 802.11-1999 specification.

The NDIS_802_11_VARIABLE_IEs structure is used to list the variable-length information elements:


typedef struct _NDIS_802_11_VARIABLE_IEs {         UCHAR ElementID;
 UCHAR Length UCHAR
 data[1]; } NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs;

For the definition of these members, see section 7.3.2 in the IEEE 802.11-1999 specification.

Note   If the device is associated with a BSSID that is not contained in the list of BSSIDs resulting from a previous scan, the miniport driver must add a BSSID description for the currently associated BSSID to the list of BSSIDs returned through this OID.

 

 

 

Send comments about this topic to Microsoft