Поделиться через


OID_DOT11_PRIVACY_EXEMPTION_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_PRIVACY_EXEMPTION_LIST object identifier (OID) requests that the miniport driver set its Extensible Station (ExtSTA) msDot11PrivacyExemptionList management information base (MIB) object to the specified data.

When queried, this OID requests that the miniport driver return the value of the msDot11PrivacyExemptionList MIB object.

The msDot11PrivacyExemptionList MIB object contains a list of exemptions for packet decryption. The 802.11 station applies these exemptions to packets it receives that match the IEEE EtherType value specified for the exemption.

Note  Support for OID_DOT11_PRIVACY_EXEMPTION_LIST is mandatory if the 802.11 station supports any cipher algorithms. The miniport driver returns a list of supported cipher algorithms when OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR or OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR are queried.

 

The data type for OID_DOT11_PRIVACY_EXEMPTION_LIST is the DOT11_PRIVACY_EXEMPTION_LIST structure.

    typedef struct DOT11_PRIVACY_EXEMPTION_LIST {
         NDIS_OBJECT_HEADER Header;
         ULONG uNumOfEntries;
         ULONG uTotalNumOfEntries;
         DOT11_PRIVACY_EXEMPTION PrivacyExemptionEntries[1];
    } DOT11_PRIVACY_EXEMPTION_LIST, *PDOT11_PRIVACY_EXEMPTION_LIST;
  

This structure includes the following members:

Header
The type, revision, and size of the DOT11_PRIVACY_EXEMPTION_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_PRIVACY_EXEMPTION_LIST_REVISION_1.

Size
This member must be set to sizeof(DOT11_PRIVACY_EXEMPTION_LIST).

For more information about these members, see NDIS_OBJECT_HEADER.

uNumOfEntries
Number of entries in the PrivacyExemptionEntries array. A zero value for this member indicates an empty privacy exemption list.

uTotalNumOfEntries
Maximum number of entries that the PrivacyExemptionEntries array can contain.

PrivacyExemptionEntries
The list of exempted EtherTypes. Each entry in the list is formatted as a DOT11_PRIVACY_EXEMPTION structure.

When OID_DOT11_PRIVACY_EXEMPTION_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_PRIVACY_EXEMPTION_LIST, PrivacyExemptionEntries) + uNumOfEntries * sizeof(DOT11_PRIVACY_EXEMPTION))

When OID_DOT11_PRIVACY_EXEMPTION_LIST is set, the miniport driver must fail the set request if the uNumOfEntries member has a value greater than the value of uPrivacyExemptionListSize 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_PRIVACY_EXEMPTION_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_PRIVACY_EXEMPTION_LIST structure, including all entries in the PrivacyExemptionEntries 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_PRIVACY_EXEMPTION_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 PrivacyExemptionEntries array.

    • For the OidRequest parameter, set the BytesWritten member to zero and the BytesNeeded member to the length, in bytes, of the entire DOT11_PRIVACY_EXEMPTION_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_PRIVACY_EXEMPTION_LIST structure, the miniport driver must do the following to complete a successful query request:

    • For the DOT11_PRIVACY_EXEMPTION_LIST structure, set the uNumOfEntries and uTotalNumOfEntries members to the total number of entries in the PrivacyExemptionEntries array.

    • For the OidRequest parameter, set the BytesNeeded member to zero and the BytesWritten member to the length, in bytes, of the entire DOT11_PRIVACY_EXEMPTION_LIST structure. The miniport driver must also copy the entire DOT11_PRIVACY_EXEMPTION_LIST structure to the InformationBuffer member.

    • Return NDIS_STATUS_SUCCESS from its MiniportOidRequest function.

The default for the msDot11PrivacyExemptionList MIB object is an empty list with uNumEntries set to zero. The miniport driver must set this MIB object to its default if any of 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