Share via


OID_DOT11_PMKID_LIST (Compact 2013)

3/26/2014

When set, the OID_DOT11_PMKID_LIST object identifier (OID) requests that the miniport driver flush its cache of pairwise master key identifiers (PMKIDs) and add the PMKID entries from the specified list to its cache.

When queried, this OID requests that the miniport driver return a list of the entries from its PMKID cache.

The 802.11 station uses the PMKID cache for preauthentication to access points that have enabled the Robust Security Network Association authentication algorithm. If the 802.11 station is associating or reassociating to a BSSID that matches an entry in its PMKID cache, the 802.11 station must use the PMKID data in the RSN information element (RSN IE) of its Association or Reassociation frame. For more information about the RSN IE, refer to Clause 7.3.2.25 of the 802.11i-2004 standard.

Note

Support for OID_DOT11_PMKID_LIST is mandatory if the 802.11 station supports PMKID caching for the DOT11_AUTH_ALGO_RSNA authentication algorithms. The miniport driver specifies its support for this authentication algorithm when OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR or OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR are queried.

The data type for OID_DOT11_PMKID_LIST is the DOT11_PMKID_LIST structure.

When OID_DOT11_PMKID_LIST is set, the miniport driver must do the following:

  • If the uNumOfEntries member has a value greater than the value of uPMKIDCacheSize that the driver previously returned through a query of OID_DOT11_EXTSTA_CAPABILITY, fail the set request by returning NDIS_STATUS_INVALID_LENGTH from its MiniportOidRequest function.
  • If the 802.11 station does not support the DOT11_AUTH_ALGO_RSNA authentication algorithm, fail the request by returning NDIS_STATUS_NOT_SUPPORTED from its MiniportOidRequest function.
  • If the 802.11 station has not enabled the DOT11_AUTH_ALGO_RSNA authentication algorithm, fail the request by returning NDIS_STATUS_INVALID_DATA from its MiniportOidRequest function.
  • Ignore any list entry that has a BSSID member that is not in the miniport driver’s desired BSSID list. For more information about the desired BSSID list, see OID_DOT11_DESIRED_BSSID_LIST.
    If no entry in the list has a BSSID member that matches an entry in the miniport driver’s desired BSSID list, the miniport driver must fail the request by returning NDIS_STATUS_INVALID_DATA from its MiniportOidRequest function.

When OID_DOT11_PMKID_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 complete DOT11_PMKID_LIST structure. This includes all entries in the PMKIDs 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 complete DOT11_PMKID_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 PMKIDs array
      For the OidRequest parameter, set the BytesWritten member to zero and the BytesNeeded member to the length, in bytes, of the complete DOT11_PMKID_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 complete DOT11_PMKID_LIST structure, the miniport driver must do the following to complete a successful query request:
    • For the DOT11_PMKID_LIST structure, set the uNumOfEntries and uTotalNumOfEntries members to the total number of entries in the PMKIDs array
    • For the OidRequest parameter, set the BytesNeeded member to zero and the BytesWritten member to the length, in bytes, of the complete DOT11_PMKID_LIST structure. The miniport driver must also copy the complete DOT11_PMKID_LIST structure to the InformationBuffer member.
    • Return NDIS_STATUS_SUCCESS from its MiniportOidRequest function

The default PMKID cache is an empty list that has uNumEntries set to zero. The miniport driver must set this cache to its default if any of the following occurs:

Requirements

Header

windot11.h

See Also

Reference

Native 802.11 Extensible Station OIDs
OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR
OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR
DOT11_PMKID_LIST
OID_DOT11_EXTSTA_CAPABILITY
MiniportOidRequest
OID_DOT11_DESIRED_BSSID_LIST
MiniportInitializeEx
OID_DOT11_RESET_REQUEST
DOT11_RESET_REQUEST
Native 802.11 Wireless LAN OIDs