OID_802_11_CAPABILITY

This OID is used to query the miniport driver for its supported wireless network authentication and encryption capabilities.

Only miniport drivers that support WPA2 functionality can support this OID. When queried, the driver must indicate that it supports both WPA2:AES and WPA-PSK2:AES in order to be considered WPA2-capable by the operating system.

Drivers that only support WPA must return NDIS_STATUS_NOT_SUPPORTED when this OID is queried.

In response to a query of this OID, the miniport driver returns an NDIS_802_11_CAPABILITY structure, which is defined as follows:

    typedef struct _NDIS_802_11_CAPABILITY {
         ULONG Length;
         ULONG Version;
         ULONG NoOfPMKIDs;
         ULONG NoOfAuthEncryptPairsSupported;
         NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1];
 
    } NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY;
  

The structure includes the following members:

  • Length
    The length, in bytes, of the NDIS_802_11_CAPABILITY structure. Length is calculated as follows:

    FIELD_OFFSET(NDIS_802_11_CAPABILITY, AuthenticationEncryptionSupported) + (NoOfPMKIDs * sizeof(NDIS_802_11_AUTHENTICATION_ENCRYPTION))
    
  • Version
    The version number of this OID. For the WPA2 update, the miniport driver must set the version number to 2.

  • NoOfPMKIDs
    The maximum number of PMKIDs that the miniport driver supports. If the driver supports PMKID caching, this value must be no less than 3 and no more than 16. The driver must set this to 0 if it does not support PMKID caching.

  • NoOfAuthEncryptPairsSupported
    The number of entries in the AuthenticationEncryptionSupported array. The driver must not set this to 0. The driver must have at least one entry in the AuthenticationEncryptionSupported array to show support for 802.11 Open System authentication with no encryption.

  • AuthenticationEncryptionSupported
    Specifies the various authentication and encryption combinations that the miniport driver supports.

The NDIS_802_11_AUTHENTICATION_ENCRYPTION structure is defined as follows:


typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION {
         NDIS_802_11_AUTHENTICATION_MODE AuthModeSupported;
         NDIS_802_11_ENCRYPTION_STATUS EncryptStatusSupported;

     } NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION;

The members of this structure contain the following information:

  • AuthModeSupported
    Specifies the authentication modes that the miniport driver supports. The allowable values for AuthModeSupported are the same as the authentication mode values defined for OID_802_11_AUTHENTICATION_MODE.

  • EncryptStatusSupported
    Specifies the encryption status values that the miniport driver supports. EncryptStatusSupported can contain any or all of the following values:

    Ndis802_11EncryptionDisabled

    Ndis802_11Encryption1Enabled

    Ndis802_11Encryption2Enabled

    Ndis802_11Encryption3Enabled

    For definitions of these values, see OID_802_11_ENCRYPTION_STATUS.

The following table summarizes the AuthModeSupported value and the EncryptStatusSupported value that the miniport driver returns, based on the authentication and encryption modes that the driver supports.

Supported authentication and encryption modes AuthModeSupported EncryptStatusSupported

Open System: none

Ndis802_11AuthModeOpen

Ndis802_11EncryptionDisabled

Open System: WEP

Ndis802_11AuthModeOpen

Ndis802_11Encryption1Enabled

Shared Key: none

Ndis802_11AuthModeShared

Ndis802_11EncryptionDisabled

Shared Key: WEP

Ndis802_11AuthModeShared

Ndis802_11Encryption1Enabled

WPA: TKIP

Ndis802_11AuthModeWPA

Ndis802_11Encryption2Enabled

WPA: AES

Ndis802_11AuthModeWPA

Ndis802_11Encryption3Enabled

WPA-PSK: TKIP

Ndis802_11AuthModeWPAPSK

Ndis802_11Encryption2Enabled

WPA-PSK: AES

Ndis802_11AuthModeWPAPSK

Ndis802_11Encryption3Enabled

WPA-None: TKIP

Ndis802_11AuthModeWPANone

Ndis802_11Encryption2Enabled

WPA-None: AES

Ndis802_11AuthModeWPANone

Ndis802_11Encryption3Enabled

WPA2: TKIP

Ndis802_11AuthModeWPA2

Ndis802_11Encryption2Enabled

WPA2: AES

Ndis802_11AuthModeWPA2

Ndis802_11Encryption3Enabled

WPA-PSK2: TKIP

Ndis802_11AuthModeWPA2PSK

Ndis802_11Encryption2Enabled

WPA-PSK2: AES

Ndis802_11AuthModeWPA2PSK

Ndis802_11Encryption3Enabled

 

Note   The driver must return separate EncryptStatusSupported entries for all cipher suites that it can use for the pairwise/unicast cipher. For example, if the device supports AES and TKIP as pairwise ciphers, it must add one entry for Ndis802_11Encryption3Enabled (for AES) and another for Ndis802_11Encryption2Enabled (for TKIP).

 

 

 

Send comments about this topic to Microsoft