Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


SSL windot11.rs   Sprache: unbekannt

 
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! Definitions for native 802.11 miniport driver specifications.
use shared::basetsd::UINT8;
use shared::minwindef::{UCHAR, ULONG, USHORT};
use shared::ntddndis::{
    NDIS_OBJECT_HEADER, NDIS_PACKET_TYPE_ALL_MULTICAST, NDIS_PACKET_TYPE_BROADCAST,
    NDIS_PACKET_TYPE_DIRECTED, NDIS_PACKET_TYPE_MULTICAST, NDIS_PACKET_TYPE_PROMISCUOUS,
    NDIS_STATUS,
};
use shared::wlantypes::{
    DOT11_AUTH_ALGORITHM, DOT11_AUTH_CIPHER_PAIR, DOT11_BSS_TYPE, DOT11_CIPHER_ALGORITHM,
    DOT11_SSID, PDOT11_AUTH_CIPHER_PAIR,
};
use um::winnt::{BOOLEAN, HANDLE, LARGE_INTEGER, LONG, PVOID, ULONGLONG};
pub type DOT11_MAC_ADDRESS = [UCHAR; 6];
pub type PDOT11_MAC_ADDRESS = *mut DOT11_MAC_ADDRESS;
STRUCT!{struct DOT11_BSSID_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    BSSIDs: [DOT11_MAC_ADDRESS; 1],
}}
pub type PDOT11_BSSID_LIST = *mut DOT11_BSSID_LIST;
pub const DOT11_BSSID_LIST_REVISION_1: UCHAR = 1;
pub const DOT11_HESSID_LENGTH: usize = 6;
pub type DOT11_HESSID = [UCHAR; DOT11_HESSID_LENGTH];
pub type PDOT11_HESSID = *mut DOT11_HESSID;
ENUM!{enum DOT11_PHY_TYPE {
    dot11_phy_type_unknown = 0,
    dot11_phy_type_any = dot11_phy_type_unknown,
    dot11_phy_type_fhss = 1,
    dot11_phy_type_dsss = 2,
    dot11_phy_type_irbaseband = 3,
    dot11_phy_type_ofdm = 4,
    dot11_phy_type_hrdsss = 5,
    dot11_phy_type_erp = 6,
    dot11_phy_type_ht = 7,
    dot11_phy_type_vht = 8,
    dot11_phy_type_dmg = 9,
    dot11_phy_type_IHV_start = 0x80000000,
    dot11_phy_type_IHV_end = 0xffffffff,
}}
pub type PDOT11_PHY_TYPE = *mut DOT11_PHY_TYPE;
pub const DOT11_RATE_SET_MAX_LENGTH: usize = 126;
STRUCT!{struct DOT11_RATE_SET {
    uRateSetLength: ULONG,
    ucRateSet: [UCHAR; DOT11_RATE_SET_MAX_LENGTH],
}}
pub type PDOT11_RATE_SET = *mut DOT11_RATE_SET;
pub type DOT11_COUNTRY_OR_REGION_STRING = [UCHAR; 3];
pub type PDOT11_COUNTRY_OR_REGION_STRING = *mut DOT11_COUNTRY_OR_REGION_STRING;
pub type DOT11_DIALOG_TOKEN = UCHAR;
pub type DOT11_WFD_STATUS_CODE = UCHAR;
pub type DOT11_WFD_MINOR_REASON_CODE = UCHAR;
pub type DOT11_WFD_SERVICE_HASH = [UCHAR; 6];
pub const DOT11_WFD_SERVICE_NAME_MAX_LENGTH: usize = 255;
pub const DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH: usize = 21;
pub const DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH: usize = 63;
pub const DOT11_WFD_SERVICE_INFORMATION_MAX_LENGTH: usize = 65535;
pub const DOT11_MAX_REQUESTED_SERVICE_INFORMATION_LENGTH: usize = 255;
pub const DOT11_WFD_SESSION_INFO_MAX_LENGTH: usize = 144;
STRUCT!{struct DOT11_WFD_SESSION_INFO {
    uSessionInfoLength: USHORT,
    ucSessionInfo: [UCHAR; DOT11_WFD_SESSION_INFO_MAX_LENGTH],
}}
pub type PDOT11_WFD_SESSION_INFO = *mut DOT11_WFD_SESSION_INFO;
pub const NDIS_PACKET_TYPE_MEDIA_SPECIFIC_MASK: u32 = 0x0fff0000;
pub const NDIS_PACKET_TYPE_802_11_DIRECTED_DATA: u32 = NDIS_PACKET_TYPE_DIRECTED;
pub const NDIS_PACKET_TYPE_802_11_BROADCAST_DATA: u32 = NDIS_PACKET_TYPE_BROADCAST;
pub const NDIS_PACKET_TYPE_802_11_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_MULTICAST;
pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_ALL_MULTICAST;
pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_DATA: u32 = NDIS_PACKET_TYPE_PROMISCUOUS;
pub const NDIS_PACKET_TYPE_802_11_RAW_DATA: u32 = 0x00010000;
pub const NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT: u32 = 0x00020000;
pub const NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT: u32 = 0x00040000;
pub const NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT: u32 = 0x00080000;
pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT: u32 = 0x00100000;
pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT: u32 = 0x00200000;
pub const NDIS_PACKET_TYPE_802_11_RAW_MGMT: u32 = 0x00400000;
pub const NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL: u32 = 0x00800000;
pub const NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL: u32 = 0x01000000;
pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL: u32 = 0x02000000;
pub const NDIS_PACKET_TYPE_ALL_802_11_FILTERS: u32 = NDIS_PACKET_TYPE_DIRECTED
    | NDIS_PACKET_TYPE_MULTICAST | NDIS_PACKET_TYPE_ALL_MULTICAST | NDIS_PACKET_TYPE_BROADCAST
    | NDIS_PACKET_TYPE_PROMISCUOUS | NDIS_PACKET_TYPE_802_11_RAW_DATA
    | NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT | NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
    | NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT | NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
    | NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT | NDIS_PACKET_TYPE_802_11_RAW_MGMT
    | NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL | NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
    | NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL;
pub const DOT11_MAX_PDU_SIZE: i32 = 2346;
pub const DOT11_MIN_PDU_SIZE: i32 = 256;
pub const DOT11_MAX_NUM_DEFAULT_KEY: i32 = 4;
pub const DOT11_MAX_NUM_DEFAULT_KEY_MFP: i32 = DOT11_MAX_NUM_DEFAULT_KEY + 2;
pub const OID_DOT11_NDIS_START: u32 = 0x0D010300;
pub const NWF_MANDATORY_OID: u32 = 0x01;
pub const NWF_OPTIONAL_OID: u32 = 0x02;
pub const NWF_OPERATIONAL_OID: u32 = 0x01;
pub const NWF_STATISTICS_OID: u32 = 0x02;
#[inline]
pub fn NWF_DEFINE_OID(Seq: u32, o: u32, m: u32) -> u32 {
    0x0E000000 | (o << 16) | (m << 8) | Seq
}
macro_rules! NWF_DEFINE_OID {
    ($Seq:expr, $o:expr, $m:expr) => { 0x0E000000 | $o << 16 | $m << 8 | $Seq };
}
pub const OID_DOT11_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 0;
pub const DOT11_HW_WEP_SUPPORTED_TX: u32 = 0x00000001;
pub const DOT11_HW_WEP_SUPPORTED_RX: u32 = 0x00000002;
pub const DOT11_HW_FRAGMENTATION_SUPPORTED: u32 = 0x00000004;
pub const DOT11_HW_DEFRAGMENTATION_SUPPORTED: u32 = 0x00000008;
pub const DOT11_HW_MSDU_AUTH_SUPPORTED_TX: u32 = 0x00000010;
pub const DOT11_HW_MSDU_AUTH_SUPPORTED_RX: u32 = 0x00000020;
pub const DOT11_CONF_ALGO_WEP_RC4: u32 = 0x00000001;
pub const DOT11_CONF_ALGO_TKIP: u32 = 0x00000002;
pub const DOT11_AUTH_ALGO_MICHAEL: u32 = 0x00000001;
STRUCT!{struct DOT11_OFFLOAD_CAPABILITY {
    uReserved: ULONG,
    uFlags: ULONG,
    uSupportedWEPAlgorithms: ULONG,
    uNumOfReplayWindows: ULONG,
    uMaxWEPKeyMappingLength: ULONG,
    uSupportedAuthAlgorithms: ULONG,
    uMaxAuthKeyMappingLength: ULONG,
}}
pub type PDOT11_OFFLOAD_CAPABILITY = *mut DOT11_OFFLOAD_CAPABILITY;
pub const OID_DOT11_CURRENT_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 1;
STRUCT!{struct DOT11_CURRENT_OFFLOAD_CAPABILITY {
    uReserved: ULONG,
    uFlags: ULONG,
}}
pub type PDOT11_CURRENT_OFFLOAD_CAPABILITY = *mut DOT11_CURRENT_OFFLOAD_CAPABILITY;
pub const OID_DOT11_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 2;
ENUM!{enum DOT11_OFFLOAD_TYPE {
    dot11_offload_type_wep = 1,
    dot11_offload_type_auth = 2,
}}
pub type PDOT11_OFFLOAD_TYPE = *mut DOT11_OFFLOAD_TYPE;
STRUCT!{struct DOT11_IV48_COUNTER {
    uIV32Counter: ULONG,
    usIV16Counter: USHORT,
}}
pub type PDOT11_IV48_COUNTER = *mut DOT11_IV48_COUNTER;
STRUCT!{struct DOT11_WEP_OFFLOAD {
    uReserved: ULONG,
    hOffloadContext: HANDLE,
    hOffload: HANDLE,
    dot11OffloadType: DOT11_OFFLOAD_TYPE,
    dwAlgorithm: ULONG,
    bRowIsOutbound: BOOLEAN,
    bUseDefault: BOOLEAN,
    uFlags: ULONG,
    ucMacAddress: [UCHAR; 6],
    uNumOfRWsOnPeer: ULONG,
    uNumOfRWsOnMe: ULONG,
    dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
    usDot11RWBitMaps: [USHORT; 16],
    usKeyLength: USHORT,
    ucKey: [UCHAR; 1],
}}
pub type PDOT11_WEP_OFFLOAD = *mut DOT11_WEP_OFFLOAD;
pub const OID_DOT11_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 3;
STRUCT!{struct DOT11_WEP_UPLOAD {
    uReserved: ULONG,
    dot11OffloadType: DOT11_OFFLOAD_TYPE,
    hOffload: HANDLE,
    uNumOfRWsUsed: ULONG,
    dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
    usDot11RWBitMaps: [USHORT; 16],
}}
pub type PDOT11_WEP_UPLOAD = *mut DOT11_WEP_UPLOAD;
pub const OID_DOT11_DEFAULT_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 4;
ENUM!{enum DOT11_KEY_DIRECTION {
    dot11_key_direction_both = 1,
    dot11_key_direction_inbound = 2,
    dot11_key_direction_outbound = 3,
}}
pub type PDOT11_KEY_DIRECTION = *mut DOT11_KEY_DIRECTION;
STRUCT!{struct DOT11_DEFAULT_WEP_OFFLOAD {
    uReserved: ULONG,
    hOffloadContext: HANDLE,
    hOffload: HANDLE,
    dwIndex: ULONG,
    dot11OffloadType: DOT11_OFFLOAD_TYPE,
    dwAlgorithm: ULONG,
    uFlags: ULONG,
    dot11KeyDirection: DOT11_KEY_DIRECTION,
    ucMacAddress: [UCHAR; 6],
    uNumOfRWsOnMe: ULONG,
    dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
    usDot11RWBitMaps: [USHORT; 16],
    usKeyLength: USHORT,
    ucKey: [UCHAR; 1],
}}
pub type PDOT11_DEFAULT_WEP_OFFLOAD = *mut DOT11_DEFAULT_WEP_OFFLOAD;
pub const OID_DOT11_DEFAULT_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 5;
STRUCT!{struct DOT11_DEFAULT_WEP_UPLOAD {
    uReserved: ULONG,
    dot11OffloadType: DOT11_OFFLOAD_TYPE,
    hOffload: HANDLE,
    uNumOfRWsUsed: ULONG,
    dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
    usDot11RWBitMaps: [USHORT; 16],
}}
pub type PDOT11_DEFAULT_WEP_UPLOAD = *mut DOT11_DEFAULT_WEP_UPLOAD;
pub const OID_DOT11_MPDU_MAX_LENGTH: u32 = OID_DOT11_NDIS_START + 6;
pub const OID_DOT11_OPERATION_MODE_CAPABILITY: u32 = OID_DOT11_NDIS_START + 7;
pub const DOT11_OPERATION_MODE_UNKNOWN: ULONG = 0x00000000;
pub const DOT11_OPERATION_MODE_STATION: ULONG = 0x00000001;
pub const DOT11_OPERATION_MODE_AP: ULONG = 0x00000002;
pub const DOT11_OPERATION_MODE_EXTENSIBLE_STATION: ULONG = 0x00000004;
pub const DOT11_OPERATION_MODE_EXTENSIBLE_AP: ULONG = 0x00000008;
pub const DOT11_OPERATION_MODE_WFD_DEVICE: ULONG = 0x00000010;
pub const DOT11_OPERATION_MODE_WFD_GROUP_OWNER: ULONG = 0x00000020;
pub const DOT11_OPERATION_MODE_WFD_CLIENT: ULONG = 0x00000040;
pub const DOT11_OPERATION_MODE_MANUFACTURING: ULONG = 0x40000000;
pub const DOT11_OPERATION_MODE_NETWORK_MONITOR: ULONG = 0x80000000;
STRUCT!{struct DOT11_OPERATION_MODE_CAPABILITY {
    uReserved: ULONG,
    uMajorVersion: ULONG,
    uMinorVersion: ULONG,
    uNumOfTXBuffers: ULONG,
    uNumOfRXBuffers: ULONG,
    uOpModeCapability: ULONG,
}}
pub type PDOT11_OPERATION_MODE_CAPABILITY = *mut DOT11_OPERATION_MODE_CAPABILITY;
pub const OID_DOT11_CURRENT_OPERATION_MODE: u32 = OID_DOT11_NDIS_START + 8;
STRUCT!{struct DOT11_CURRENT_OPERATION_MODE {
    uReserved: ULONG,
    uCurrentOpMode: ULONG,
}}
pub type PDOT11_CURRENT_OPERATION_MODE = *mut DOT11_CURRENT_OPERATION_MODE;
pub const OID_DOT11_CURRENT_PACKET_FILTER: u32 = OID_DOT11_NDIS_START + 9;
pub const DOT11_PACKET_TYPE_DIRECTED_CTRL: u32 = 0x00000001;
pub const DOT11_PACKET_TYPE_DIRECTED_MGMT: u32 = 0x00000002;
pub const DOT11_PACKET_TYPE_DIRECTED_DATA: u32 = 0x00000004;
pub const DOT11_PACKET_TYPE_MULTICAST_CTRL: u32 = 0x00000008;
pub const DOT11_PACKET_TYPE_MULTICAST_MGMT: u32 = 0x00000010;
pub const DOT11_PACKET_TYPE_MULTICAST_DATA: u32 = 0x00000020;
pub const DOT11_PACKET_TYPE_BROADCAST_CTRL: u32 = 0x00000040;
pub const DOT11_PACKET_TYPE_BROADCAST_MGMT: u32 = 0x00000080;
pub const DOT11_PACKET_TYPE_BROADCAST_DATA: u32 = 0x00000100;
pub const DOT11_PACKET_TYPE_PROMISCUOUS_CTRL: u32 = 0x00000200;
pub const DOT11_PACKET_TYPE_PROMISCUOUS_MGMT: u32 = 0x00000400;
pub const DOT11_PACKET_TYPE_PROMISCUOUS_DATA: u32 = 0x00000800;
pub const DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL: u32 = 0x00001000;
pub const DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT: u32 = 0x00002000;
pub const DOT11_PACKET_TYPE_ALL_MULTICAST_DATA: u32 = 0x00004000;
pub const DOT11_PACKET_TYPE_RESERVED: u32 = !(DOT11_PACKET_TYPE_DIRECTED_CTRL
    | DOT11_PACKET_TYPE_DIRECTED_MGMT | DOT11_PACKET_TYPE_DIRECTED_DATA
    | DOT11_PACKET_TYPE_MULTICAST_CTRL | DOT11_PACKET_TYPE_MULTICAST_MGMT
    | DOT11_PACKET_TYPE_MULTICAST_DATA | DOT11_PACKET_TYPE_BROADCAST_CTRL
    | DOT11_PACKET_TYPE_BROADCAST_MGMT | DOT11_PACKET_TYPE_BROADCAST_DATA
    | DOT11_PACKET_TYPE_PROMISCUOUS_CTRL | DOT11_PACKET_TYPE_PROMISCUOUS_MGMT
    | DOT11_PACKET_TYPE_PROMISCUOUS_DATA | DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL
    | DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT | DOT11_PACKET_TYPE_ALL_MULTICAST_DATA | 0);
pub const OID_DOT11_ATIM_WINDOW: u32 = OID_DOT11_NDIS_START + 10;
pub const OID_DOT11_SCAN_REQUEST: u32 = OID_DOT11_NDIS_START + 11;
ENUM!{enum DOT11_SCAN_TYPE {
    dot11_scan_type_active = 1,
    dot11_scan_type_passive = 2,
    dot11_scan_type_auto = 3,
    dot11_scan_type_forced = 0x80000000,
}}
pub type PDOT11_SCAN_TYPE = *mut DOT11_SCAN_TYPE;
STRUCT!{struct DOT11_SCAN_REQUEST {
    dot11BSSType: DOT11_BSS_TYPE,
    dot11BSSID: DOT11_MAC_ADDRESS,
    dot11SSID: DOT11_SSID,
    dot11ScanType: DOT11_SCAN_TYPE,
    bRestrictedScan: BOOLEAN,
    bUseRequestIE: BOOLEAN,
    uRequestIDsOffset: ULONG,
    uNumOfRequestIDs: ULONG,
    uPhyTypesOffset: ULONG,
    uNumOfPhyTypes: ULONG,
    uIEsOffset: ULONG,
    uIEsLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_SCAN_REQUEST = *mut DOT11_SCAN_REQUEST;
ENUM!{enum CH_DESCRIPTION_TYPE {
    ch_description_type_logical = 1,
    ch_description_type_center_frequency = 2,
    ch_description_type_phy_specific = 3,
}}
pub type PCH_DESCRIPTION_TYPE = *mut CH_DESCRIPTION_TYPE;
STRUCT!{struct DOT11_PHY_TYPE_INFO {
    dot11PhyType: DOT11_PHY_TYPE,
    bUseParameters: BOOLEAN,
    uProbeDelay: ULONG,
    uMinChannelTime: ULONG,
    uMaxChannelTime: ULONG,
    ChDescriptionType: CH_DESCRIPTION_TYPE,
    uChannelListSize: ULONG,
    ucChannelListBuffer: [UCHAR; 1],
}}
pub type PDOT11_PHY_TYPE_INFO = *mut DOT11_PHY_TYPE_INFO;
STRUCT!{struct DOT11_SCAN_REQUEST_V2 {
    dot11BSSType: DOT11_BSS_TYPE,
    dot11BSSID: DOT11_MAC_ADDRESS,
    dot11ScanType: DOT11_SCAN_TYPE,
    bRestrictedScan: BOOLEAN,
    udot11SSIDsOffset: ULONG,
    uNumOfdot11SSIDs: ULONG,
    bUseRequestIE: BOOLEAN,
    uRequestIDsOffset: ULONG,
    uNumOfRequestIDs: ULONG,
    uPhyTypeInfosOffset: ULONG,
    uNumOfPhyTypeInfos: ULONG,
    uIEsOffset: ULONG,
    uIEsLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_SCAN_REQUEST_V2 = *mut DOT11_SCAN_REQUEST_V2;
pub const OID_DOT11_CURRENT_PHY_TYPE: u32 = OID_DOT11_NDIS_START + 12;
STRUCT!{struct DOT11_PHY_TYPE_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11PhyType: [DOT11_PHY_TYPE; 1],
}}
pub type PDOT11_PHY_TYPE_LIST = *mut DOT11_PHY_TYPE_LIST;
pub const DOT11_PHY_TYPE_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 13;
pub const DOT11_CAPABILITY_INFO_ESS: USHORT = 0x0001;
pub const DOT11_CAPABILITY_INFO_IBSS: USHORT = 0x0002;
pub const DOT11_CAPABILITY_INFO_CF_POLLABLE: USHORT = 0x0004;
pub const DOT11_CAPABILITY_INFO_CF_POLL_REQ: USHORT = 0x0008;
pub const DOT11_CAPABILITY_INFO_PRIVACY: USHORT = 0x0010;
pub const DOT11_CAPABILITY_SHORT_PREAMBLE: USHORT = 0x0020;
pub const DOT11_CAPABILITY_PBCC: USHORT = 0x0040;
pub const DOT11_CAPABILITY_CHANNEL_AGILITY: USHORT = 0x0080;
pub const DOT11_CAPABILITY_SHORT_SLOT_TIME: USHORT = 0x0400;
pub const DOT11_CAPABILITY_DSSSOFDM: USHORT = 0x2000;
STRUCT!{struct DOT11_BSS_DESCRIPTION {
    uReserved: ULONG,
    dot11BSSID: DOT11_MAC_ADDRESS,
    dot11BSSType: DOT11_BSS_TYPE,
    usBeaconPeriod: USHORT,
    ullTimestamp: ULONGLONG,
    usCapabilityInformation: USHORT,
    uBufferLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_BSS_DESCRIPTION = *mut DOT11_BSS_DESCRIPTION;
STRUCT!{struct DOT11_JOIN_REQUEST {
    uJoinFailureTimeout: ULONG,
    OperationalRateSet: DOT11_RATE_SET,
    uChCenterFrequency: ULONG,
    dot11BSSDescription: DOT11_BSS_DESCRIPTION,
}}
pub type PDOT11_JOIN_REQUEST = *mut DOT11_JOIN_REQUEST;
pub const OID_DOT11_START_REQUEST: u32 = OID_DOT11_NDIS_START + 14;
STRUCT!{struct DOT11_START_REQUEST {
    uStartFailureTimeout: ULONG,
    OperationalRateSet: DOT11_RATE_SET,
    uChCenterFrequency: ULONG,
    dot11BSSDescription: DOT11_BSS_DESCRIPTION,
}}
pub type PDOT11_START_REQUEST = *mut DOT11_START_REQUEST;
pub const OID_DOT11_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 15;
ENUM!{enum DOT11_UPDATE_IE_OP {
    dot11_update_ie_op_create_replace = 1,
    dot11_update_ie_op_delete = 2,
}}
pub type PDOT11_UPDATE_IE_OP = *mut DOT11_UPDATE_IE_OP;
STRUCT!{struct DOT11_UPDATE_IE {
    dot11UpdateIEOp: DOT11_UPDATE_IE_OP,
    uBufferLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_UPDATE_IE = *mut DOT11_UPDATE_IE;
pub const OID_DOT11_RESET_REQUEST: u32 = OID_DOT11_NDIS_START + 16;
ENUM!{enum DOT11_RESET_TYPE {
    dot11_reset_type_phy = 1,
    dot11_reset_type_mac = 2,
    dot11_reset_type_phy_and_mac = 3,
}}
pub type PDOT11_RESET_TYPE = *mut DOT11_RESET_TYPE;
STRUCT!{struct DOT11_RESET_REQUEST {
    dot11ResetType: DOT11_RESET_TYPE,
    dot11MacAddress: DOT11_MAC_ADDRESS,
    bSetDefaultMIB: BOOLEAN,
}}
pub type PDOT11_RESET_REQUEST = *mut DOT11_RESET_REQUEST;
pub const OID_DOT11_NIC_POWER_STATE: u32 = OID_DOT11_NDIS_START + 17;
pub const OID_DOT11_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 18;
STRUCT!{struct DOT11_OPTIONAL_CAPABILITY {
    uReserved: ULONG,
    bDot11PCF: BOOLEAN,
    bDot11PCFMPDUTransferToPC: BOOLEAN,
    bStrictlyOrderedServiceClass: BOOLEAN,
}}
pub type PDOT11_OPTIONAL_CAPABILITY = *mut DOT11_OPTIONAL_CAPABILITY;
pub const OID_DOT11_CURRENT_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 19;
STRUCT!{struct DOT11_CURRENT_OPTIONAL_CAPABILITY {
    uReserved: ULONG,
    bDot11CFPollable: BOOLEAN,
    bDot11PCF: BOOLEAN,
    bDot11PCFMPDUTransferToPC: BOOLEAN,
    bStrictlyOrderedServiceClass: BOOLEAN,
}}
pub type PDOT11_CURRENT_OPTIONAL_CAPABILITY = *mut DOT11_CURRENT_OPTIONAL_CAPABILITY;
pub const OID_DOT11_STATION_ID: u32 = OID_DOT11_NDIS_START + 20;
pub const OID_DOT11_MEDIUM_OCCUPANCY_LIMIT: u32 = OID_DOT11_NDIS_START + 21;
pub const OID_DOT11_CF_POLLABLE: u32 = OID_DOT11_NDIS_START + 22;
pub const OID_DOT11_CFP_PERIOD: u32 = OID_DOT11_NDIS_START + 23;
pub const OID_DOT11_CFP_MAX_DURATION: u32 = OID_DOT11_NDIS_START + 24;
pub const OID_DOT11_POWER_MGMT_MODE: u32 = OID_DOT11_NDIS_START + 25;
ENUM!{enum DOT11_POWER_MODE {
    dot11_power_mode_unknown = 0,
    dot11_power_mode_active = 1,
    dot11_power_mode_powersave = 2,
}}
pub type PDOT11_POWER_MODE = *mut DOT11_POWER_MODE;
pub const DOT11_POWER_SAVE_LEVEL_MAX_PSP: ULONG = 1;
pub const DOT11_POWER_SAVE_LEVEL_FAST_PSP: ULONG = 2;
STRUCT!{struct DOT11_POWER_MGMT_MODE {
    dot11PowerMode: DOT11_POWER_MODE,
    uPowerSaveLevel: ULONG,
    usListenInterval: USHORT,
    usAID: USHORT,
    bReceiveDTIMs: BOOLEAN,
}}
pub type PDOT11_POWER_MGMT_MODE = *mut DOT11_POWER_MGMT_MODE;
pub const OID_DOT11_OPERATIONAL_RATE_SET: u32 = OID_DOT11_NDIS_START + 26;
pub const OID_DOT11_BEACON_PERIOD: u32 = OID_DOT11_NDIS_START + 27;
pub const OID_DOT11_DTIM_PERIOD: u32 = OID_DOT11_NDIS_START + 28;
pub const OID_DOT11_WEP_ICV_ERROR_COUNT: u32 = OID_DOT11_NDIS_START + 29;
pub const OID_DOT11_MAC_ADDRESS: u32 = OID_DOT11_NDIS_START + 30;
pub const OID_DOT11_RTS_THRESHOLD: u32 = OID_DOT11_NDIS_START + 31;
pub const OID_DOT11_SHORT_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 32;
pub const OID_DOT11_LONG_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 33;
pub const OID_DOT11_FRAGMENTATION_THRESHOLD: u32 = OID_DOT11_NDIS_START + 34;
pub const OID_DOT11_MAX_TRANSMIT_MSDU_LIFETIME: u32 = OID_DOT11_NDIS_START + 35;
pub const OID_DOT11_MAX_RECEIVE_LIFETIME: u32 = OID_DOT11_NDIS_START + 36;
pub const OID_DOT11_COUNTERS_ENTRY: u32 = OID_DOT11_NDIS_START + 37;
STRUCT!{struct DOT11_COUNTERS_ENTRY {
    uTransmittedFragmentCount: ULONG,
    uMulticastTransmittedFrameCount: ULONG,
    uFailedCount: ULONG,
    uRetryCount: ULONG,
    uMultipleRetryCount: ULONG,
    uFrameDuplicateCount: ULONG,
    uRTSSuccessCount: ULONG,
    uRTSFailureCount: ULONG,
    uACKFailureCount: ULONG,
    uReceivedFragmentCount: ULONG,
    uMulticastReceivedFrameCount: ULONG,
    uFCSErrorCount: ULONG,
    uTransmittedFrameCount: ULONG,
}}
pub type PDOT11_COUNTERS_ENTRY = *mut DOT11_COUNTERS_ENTRY;
pub const OID_DOT11_SUPPORTED_PHY_TYPES: u32 = OID_DOT11_NDIS_START + 38;
STRUCT!{struct DOT11_SUPPORTED_PHY_TYPES {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11PHYType: [DOT11_PHY_TYPE; 1],
}}
pub type PDOT11_SUPPORTED_PHY_TYPES = *mut DOT11_SUPPORTED_PHY_TYPES;
pub const OID_DOT11_CURRENT_REG_DOMAIN: u32 = OID_DOT11_NDIS_START + 39;
pub const DOT11_REG_DOMAIN_OTHER: ULONG = 0x00000000;
pub const DOT11_REG_DOMAIN_FCC: ULONG = 0x00000010;
pub const DOT11_REG_DOMAIN_DOC: ULONG = 0x00000020;
pub const DOT11_REG_DOMAIN_ETSI: ULONG = 0x00000030;
pub const DOT11_REG_DOMAIN_SPAIN: ULONG = 0x00000031;
pub const DOT11_REG_DOMAIN_FRANCE: ULONG = 0x00000032;
pub const DOT11_REG_DOMAIN_MKK: ULONG = 0x00000040;
pub const OID_DOT11_TEMP_TYPE: u32 = OID_DOT11_NDIS_START + 40;
ENUM!{enum DOT11_TEMP_TYPE {
    dot11_temp_type_unknown = 0,
    dot11_temp_type_1 = 1,
    dot11_temp_type_2 = 2,
}}
pub type PDOT11_TEMP_TYPE = *mut DOT11_TEMP_TYPE;
pub const OID_DOT11_CURRENT_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 41;
pub const OID_DOT11_DIVERSITY_SUPPORT: u32 = OID_DOT11_NDIS_START + 42;
ENUM!{enum DOT11_DIVERSITY_SUPPORT {
    dot11_diversity_support_unknown = 0,
    dot11_diversity_support_fixedlist = 1,
    dot11_diversity_support_notsupported = 2,
    dot11_diversity_support_dynamic = 3,
}}
pub type PDOT11_DIVERSITY_SUPPORT = *mut DOT11_DIVERSITY_SUPPORT;
pub const OID_DOT11_CURRENT_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 43;
pub const OID_DOT11_SUPPORTED_POWER_LEVELS: u32 = OID_DOT11_NDIS_START + 44;
STRUCT!{struct DOT11_SUPPORTED_POWER_LEVELS {
    uNumOfSupportedPowerLevels: ULONG,
    uTxPowerLevelValues: [ULONG; 8],
}}
pub type PDOT11_SUPPORTED_POWER_LEVELS = *mut DOT11_SUPPORTED_POWER_LEVELS;
pub const OID_DOT11_CURRENT_TX_POWER_LEVEL: u32 = OID_DOT11_NDIS_START + 45;
pub const OID_DOT11_HOP_TIME: u32 = OID_DOT11_NDIS_START + 46;
pub const OID_DOT11_CURRENT_CHANNEL_NUMBER: u32 = OID_DOT11_NDIS_START + 47;
pub const OID_DOT11_MAX_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 48;
pub const OID_DOT11_CURRENT_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 49;
pub const OID_DOT11_CURRENT_SET: u32 = OID_DOT11_NDIS_START + 50;
pub const OID_DOT11_CURRENT_PATTERN: u32 = OID_DOT11_NDIS_START + 51;
pub const OID_DOT11_CURRENT_INDEX: u32 = OID_DOT11_NDIS_START + 52;
pub const OID_DOT11_CURRENT_CHANNEL: u32 = OID_DOT11_NDIS_START + 53;
pub const OID_DOT11_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 54;
pub const DOT11_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
pub const DOT11_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
pub const DOT11_CCA_MODE_ED_and_CS: ULONG = 0x00000004;
pub const DOT11_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
pub const DOT11_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
pub const OID_DOT11_CURRENT_CCA_MODE: u32 = OID_DOT11_NDIS_START + 55;
pub const OID_DOT11_ED_THRESHOLD: u32 = OID_DOT11_NDIS_START + 56;
pub const OID_DOT11_CCA_WATCHDOG_TIMER_MAX: u32 = OID_DOT11_NDIS_START + 57;
pub const OID_DOT11_CCA_WATCHDOG_COUNT_MAX: u32 = OID_DOT11_NDIS_START + 58;
pub const OID_DOT11_CCA_WATCHDOG_TIMER_MIN: u32 = OID_DOT11_NDIS_START + 59;
pub const OID_DOT11_CCA_WATCHDOG_COUNT_MIN: u32 = OID_DOT11_NDIS_START + 60;
pub const OID_DOT11_REG_DOMAINS_SUPPORT_VALUE: u32 = OID_DOT11_NDIS_START + 61;
STRUCT!{struct DOT11_REG_DOMAIN_VALUE {
    uRegDomainsSupportIndex: ULONG,
    uRegDomainsSupportValue: ULONG,
}}
pub type PDOT11_REG_DOMAIN_VALUE = *mut DOT11_REG_DOMAIN_VALUE;
STRUCT!{struct DOT11_REG_DOMAINS_SUPPORT_VALUE {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11RegDomainValue: [DOT11_REG_DOMAIN_VALUE; 1],
}}
pub type PDOT11_REG_DOMAINS_SUPPORT_VALUE = *mut DOT11_REG_DOMAINS_SUPPORT_VALUE;
pub const OID_DOT11_SUPPORTED_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 62;
STRUCT!{struct DOT11_SUPPORTED_ANTENNA {
    uAntennaListIndex: ULONG,
    bSupportedAntenna: BOOLEAN,
}}
pub type PDOT11_SUPPORTED_ANTENNA = *mut DOT11_SUPPORTED_ANTENNA;
STRUCT!{struct DOT11_SUPPORTED_ANTENNA_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11SupportedAntenna: [DOT11_SUPPORTED_ANTENNA; 1],
}}
pub type PDOT11_SUPPORTED_ANTENNA_LIST = *mut DOT11_SUPPORTED_ANTENNA_LIST;
pub const OID_DOT11_SUPPORTED_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 63;
pub const OID_DOT11_DIVERSITY_SELECTION_RX: u32 = OID_DOT11_NDIS_START + 64;
STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX {
    uAntennaListIndex: ULONG,
    bDiversitySelectionRX: BOOLEAN,
}}
pub type PDOT11_DIVERSITY_SELECTION_RX = *mut DOT11_DIVERSITY_SELECTION_RX;
STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11DiversitySelectionRx: [DOT11_DIVERSITY_SELECTION_RX; 1],
}}
pub type PDOT11_DIVERSITY_SELECTION_RX_LIST = *mut DOT11_DIVERSITY_SELECTION_RX_LIST;
pub const OID_DOT11_SUPPORTED_DATA_RATES_VALUE: u32 = OID_DOT11_NDIS_START + 65;
pub const MAX_NUM_SUPPORTED_RATES: usize = 8;
pub const MAX_NUM_SUPPORTED_RATES_V2: usize = 255;
STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE {
    ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
    ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
}}
pub type PDOT11_SUPPORTED_DATA_RATES_VALUE = *mut DOT11_SUPPORTED_DATA_RATES_VALUE;
STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE_V2 {
    ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
    ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
}}
pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V2 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
pub type DOT11_SUPPORTED_DATA_RATES_VALUE_V1 = DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V1 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
pub const OID_DOT11_CURRENT_FREQUENCY: u32 = OID_DOT11_NDIS_START + 66;
pub const OID_DOT11_TI_THRESHOLD: u32 = OID_DOT11_NDIS_START + 67;
pub const OID_DOT11_FREQUENCY_BANDS_SUPPORTED: u32 = OID_DOT11_NDIS_START + 68;
pub const DOT11_FREQUENCY_BANDS_LOWER: u32 = 0x00000001;
pub const DOT11_FREQUENCY_BANDS_MIDDLE: u32 = 0x00000002;
pub const DOT11_FREQUENCY_BANDS_UPPER: u32 = 0x00000004;
pub const OID_DOT11_SHORT_PREAMBLE_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 69;
pub const OID_DOT11_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 70;
pub const OID_DOT11_CHANNEL_AGILITY_PRESENT: u32 = OID_DOT11_NDIS_START + 71;
pub const OID_DOT11_CHANNEL_AGILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 72;
pub const OID_DOT11_HR_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 73;
pub const DOT11_HR_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
pub const DOT11_HR_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
pub const DOT11_HR_CCA_MODE_CS_AND_ED: ULONG = 0x00000004;
pub const DOT11_HR_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
pub const DOT11_HR_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 74;
pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 75;
pub const OID_DOT11_COUNTRY_STRING: u32 = OID_DOT11_NDIS_START + 76;
STRUCT!{struct DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY {
    uMultiDomainCapabilityIndex: ULONG,
    uFirstChannelNumber: ULONG,
    uNumberOfChannels: ULONG,
    lMaximumTransmitPowerLevel: LONG,
}}
pub type PDOT11_MULTI_DOMAIN_CAPABILITY_ENTRY = *mut DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY;
STRUCT!{struct DOT11_MD_CAPABILITY_ENTRY_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11MDCapabilityEntry: [DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY; 1],
}}
pub type PDOT11_MD_CAPABILITY_ENTRY_LIST = *mut DOT11_MD_CAPABILITY_ENTRY_LIST;
pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY: u32 = OID_DOT11_NDIS_START + 77;
pub const OID_DOT11_EHCC_PRIME_RADIX: u32 = OID_DOT11_NDIS_START + 78;
pub const OID_DOT11_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX: u32 = OID_DOT11_NDIS_START + 79;
pub const OID_DOT11_EHCC_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 80;
pub const OID_DOT11_EHCC_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 81;
pub const OID_DOT11_HOP_ALGORITHM_ADOPTED: u32 = OID_DOT11_NDIS_START + 82;
ENUM!{enum DOT11_HOP_ALGO_ADOPTED {
    dot11_hop_algo_current = 0,
    dot11_hop_algo_hop_index = 1,
    dot11_hop_algo_hcc = 2,
}}
pub type PDOT11_HOP_ALGO_ADOPTED = *mut DOT11_HOP_ALGO_ADOPTED;
pub const OID_DOT11_RANDOM_TABLE_FLAG: u32 = OID_DOT11_NDIS_START + 83;
pub const OID_DOT11_NUMBER_OF_HOPPING_SETS: u32 = OID_DOT11_NDIS_START + 84;
pub const OID_DOT11_HOP_MODULUS: u32 = OID_DOT11_NDIS_START + 85;
pub const OID_DOT11_HOP_OFFSET: u32 = OID_DOT11_NDIS_START + 86;
pub const OID_DOT11_HOPPING_PATTERN: u32 = OID_DOT11_NDIS_START + 87;
STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY {
    uHoppingPatternIndex: ULONG,
    uRandomTableFieldNumber: ULONG,
}}
pub type PDOT11_HOPPING_PATTERN_ENTRY = *mut DOT11_HOPPING_PATTERN_ENTRY;
STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11HoppingPatternEntry: [DOT11_HOPPING_PATTERN_ENTRY; 1],
}}
pub type PDOT11_HOPPING_PATTERN_ENTRY_LIST = *mut DOT11_HOPPING_PATTERN_ENTRY_LIST;
pub const OID_DOT11_RANDOM_TABLE_FIELD_NUMBER: u32 = OID_DOT11_NDIS_START + 88;
pub const OID_DOT11_WPA_TSC: u32 = OID_DOT11_NDIS_START + 89;
STRUCT!{struct DOT11_WPA_TSC {
    uReserved: ULONG,
    dot11OffloadType: DOT11_OFFLOAD_TYPE,
    hOffload: HANDLE,
    dot11IV48Counter: DOT11_IV48_COUNTER,
}}
pub type PDOT11_WPA_TSC = *mut DOT11_WPA_TSC;
pub const OID_DOT11_RSSI_RANGE: u32 = OID_DOT11_NDIS_START + 90;
STRUCT!{struct DOT11_RSSI_RANGE {
    dot11PhyType: DOT11_PHY_TYPE,
    uRSSIMin: ULONG,
    uRSSIMax: ULONG,
}}
pub type PDOT11_RSSI_RANGE = *mut DOT11_RSSI_RANGE;
pub const OID_DOT11_RF_USAGE: u32 = OID_DOT11_NDIS_START + 91;
pub const OID_DOT11_NIC_SPECIFIC_EXTENSION: u32 = OID_DOT11_NDIS_START + 92;
STRUCT!{struct DOT11_NIC_SPECIFIC_EXTENSION {
    uBufferLength: ULONG,
    uTotalBufferLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_NIC_SPECIFIC_EXTENSION = *mut DOT11_NIC_SPECIFIC_EXTENSION;
pub const OID_DOT11_AP_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 93;
STRUCT!{struct DOT11_AP_JOIN_REQUEST {
    uJoinFailureTimeout: ULONG,
    OperationalRateSet: DOT11_RATE_SET,
    uChCenterFrequency: ULONG,
    dot11BSSDescription: DOT11_BSS_DESCRIPTION,
}}
pub type PDOT11_AP_JOIN_REQUEST = *mut DOT11_AP_JOIN_REQUEST;
pub const OID_DOT11_ERP_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 94;
pub const OID_DOT11_ERP_PBCC_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 95;
pub const OID_DOT11_DSSS_OFDM_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 96;
pub const OID_DOT11_DSSS_OFDM_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 97;
pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 98;
pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 99;
pub const OID_DOT11_MAX_MAC_ADDRESS_STATES: u32 = OID_DOT11_NDIS_START + 100;
pub const OID_DOT11_RECV_SENSITIVITY_LIST: u32 = OID_DOT11_NDIS_START + 101;
STRUCT!{struct DOT11_RECV_SENSITIVITY {
    ucDataRate: UCHAR,
    lRSSIMin: LONG,
    lRSSIMax: LONG,
}}
pub type PDOT11_RECV_SENSITIVITY = *mut DOT11_RECV_SENSITIVITY;
UNION!{union DOT11_RECV_SENSITIVITY_LIST_u {
    [u32; 1],
    dot11PhyType dot11PhyType_mut: DOT11_PHY_TYPE,
    uPhyId uPhyId_mut: ULONG,
}}
STRUCT!{struct DOT11_RECV_SENSITIVITY_LIST {
    u: DOT11_RECV_SENSITIVITY_LIST_u,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11RecvSensitivity: [DOT11_RECV_SENSITIVITY; 1],
}}
pub type PDOT11_RECV_SENSITIVITY_LIST = *mut DOT11_RECV_SENSITIVITY_LIST;
pub const OID_DOT11_WME_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 102;
pub const OID_DOT11_WME_ENABLED: u32 = OID_DOT11_NDIS_START + 103;
pub const OID_DOT11_WME_AC_PARAMETERS: u32 = OID_DOT11_NDIS_START + 104;
ENUM!{enum DOT11_AC_PARAM {
    dot11_AC_param_BE = 0,
    dot11_AC_param_BK = 1,
    dot11_AC_param_VI = 2,
    dot11_AC_param_VO = 3,
    dot11_AC_param_max = 4,
}}
pub type PDOT11_AC_PARAM = *mut DOT11_AC_PARAM;
STRUCT!{struct DOT11_WME_AC_PARAMETERS {
    ucAccessCategoryIndex: UCHAR,
    ucAIFSN: UCHAR,
    ucECWmin: UCHAR,
    ucECWmax: UCHAR,
    usTXOPLimit: USHORT,
}}
pub type PDOT11_WME_AC_PARAMETERS = *mut DOT11_WME_AC_PARAMETERS;
STRUCT!{struct DOT11_WME_AC_PARAMETERS_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11WMEACParameters: [DOT11_WME_AC_PARAMETERS; 1],
}}
pub type PDOT11_WME_AC_PARAMETERS_LIST = *mut DOT11_WME_AC_PARAMETERS_LIST;
pub const OID_DOT11_WME_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 105;
STRUCT!{struct DOT11_WME_UPDATE_IE {
    uParamElemMinBeaconIntervals: ULONG,
    uWMEInfoElemOffset: ULONG,
    uWMEInfoElemLength: ULONG,
    uWMEParamElemOffset: ULONG,
    uWMEParamElemLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_WME_UPDATE_IE = *mut DOT11_WME_UPDATE_IE;
pub const OID_DOT11_QOS_TX_QUEUES_SUPPORTED: u32 = OID_DOT11_NDIS_START + 106;
pub const OID_DOT11_QOS_TX_DURATION: u32 = OID_DOT11_NDIS_START + 107;
STRUCT!{struct DOT11_QOS_TX_DURATION {
    uNominalMSDUSize: ULONG,
    uMinPHYRate: ULONG,
    uDuration: ULONG,
}}
pub type PDOT11_QOS_TX_DURATION = *mut DOT11_QOS_TX_DURATION;
pub const OID_DOT11_QOS_TX_MEDIUM_TIME: u32 = OID_DOT11_NDIS_START + 108;
STRUCT!{struct DOT11_QOS_TX_MEDIUM_TIME {
    dot11PeerAddress: DOT11_MAC_ADDRESS,
    ucQoSPriority: UCHAR,
    uMediumTimeAdmited: ULONG,
}}
pub type PDOT11_QOS_TX_MEDIUM_TIME = *mut DOT11_QOS_TX_MEDIUM_TIME;
pub const OID_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST: u32 = OID_DOT11_NDIS_START + 109;
STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY {
    uCenterFrequency: ULONG,
}}
pub type PDOT11_SUPPORTED_OFDM_FREQUENCY = *mut DOT11_SUPPORTED_OFDM_FREQUENCY;
STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11SupportedOFDMFrequency: [DOT11_SUPPORTED_OFDM_FREQUENCY; 1],
}}
pub type PDOT11_SUPPORTED_OFDM_FREQUENCY_LIST = *mut DOT11_SUPPORTED_OFDM_FREQUENCY_LIST;
pub const OID_DOT11_SUPPORTED_DSSS_CHANNEL_LIST: u32 = OID_DOT11_NDIS_START + 110;
STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL {
    uChannel: ULONG,
}}
pub type PDOT11_SUPPORTED_DSSS_CHANNEL = *mut DOT11_SUPPORTED_DSSS_CHANNEL;
STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL_LIST {
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11SupportedDSSSChannel: [DOT11_SUPPORTED_DSSS_CHANNEL; 1],
}}
pub type PDOT11_SUPPORTED_DSSS_CHANNEL_LIST = *mut DOT11_SUPPORTED_DSSS_CHANNEL_LIST;
STRUCT!{struct DOT11_BYTE_ARRAY {
    Header: NDIS_OBJECT_HEADER,
    uNumOfBytes: ULONG,
    uTotalNumOfBytes: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_BYTE_ARRAY = *mut DOT11_BYTE_ARRAY;
pub const OID_DOT11_AUTO_CONFIG_ENABLED: u32 =
    NWF_DEFINE_OID!(120, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const DOT11_PHY_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000001;
pub const DOT11_MAC_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000002;
pub const OID_DOT11_ENUM_BSS_LIST: u32 =
    NWF_DEFINE_OID!(121, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const DOT11_BSS_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
STRUCT!{struct DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS {
    uHopPattern: ULONG,
    uHopSet: ULONG,
    uDwellTime: ULONG,
}}
UNION!{union DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO {
    [u32; 3],
    uChCenterFrequency uChCenterFrequency_mut: ULONG,
    FHSS FHSS_mut: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS,
}}
pub type PDOT11_BSS_ENTRY_PHY_SPECIFIC_INFO = *mut DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO;
STRUCT!{struct DOT11_BSS_ENTRY {
    uPhyId: ULONG,
    PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO,
    dot11BSSID: DOT11_MAC_ADDRESS,
    dot11BSSType: DOT11_BSS_TYPE,
    lRSSI: LONG,
    uLinkQuality: ULONG,
    bInRegDomain: BOOLEAN,
    usBeaconPeriod: USHORT,
    ullTimestamp: ULONGLONG,
    ullHostTimestamp: ULONGLONG,
    usCapabilityInformation: USHORT,
    uBufferLength: ULONG,
    ucBuffer: [UCHAR; 1],
}}
pub type PDOT11_BSS_ENTRY = *mut DOT11_BSS_ENTRY;
pub const OID_DOT11_FLUSH_BSS_LIST: u32 =
    NWF_DEFINE_OID!(122, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_POWER_MGMT_REQUEST: u32 =
    NWF_DEFINE_OID!(123, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const DOT11_POWER_SAVING_NO_POWER_SAVING: ULONG = 0;
pub const DOT11_POWER_SAVING_FAST_PSP: ULONG = 8;
pub const DOT11_POWER_SAVING_MAX_PSP: ULONG = 16;
pub const DOT11_POWER_SAVING_MAXIMUM_LEVEL: ULONG = 24;
pub const OID_DOT11_DESIRED_SSID_LIST: u32 =
    NWF_DEFINE_OID!(124, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_SSID_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    SSIDs: [DOT11_SSID; 1],
}}
pub type PDOT11_SSID_LIST = *mut DOT11_SSID_LIST;
pub const DOT11_SSID_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_EXCLUDED_MAC_ADDRESS_LIST: u32 =
    NWF_DEFINE_OID!(125, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_MAC_ADDRESS_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    MacAddrs: [DOT11_MAC_ADDRESS; 1],
}}
pub type PDOT11_MAC_ADDRESS_LIST = *mut DOT11_MAC_ADDRESS_LIST;
pub const DOT11_MAC_ADDRESS_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_DESIRED_BSSID_LIST: u32 =
    NWF_DEFINE_OID!(126, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_DESIRED_BSS_TYPE: u32 =
    NWF_DEFINE_OID!(127, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_PMKID_LIST: u32 = NWF_DEFINE_OID!(128, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
pub type DOT11_PMKID_VALUE = [UCHAR; 16];
STRUCT!{struct DOT11_PMKID_ENTRY {
    BSSID: DOT11_MAC_ADDRESS,
    PMKID: DOT11_PMKID_VALUE,
    uFlags: ULONG,
}}
pub type PDOT11_PMKID_ENTRY = *mut DOT11_PMKID_ENTRY;
STRUCT!{struct DOT11_PMKID_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    PMKIDs: [DOT11_PMKID_ENTRY; 1],
}}
pub type PDOT11_PMKID_LIST = *mut DOT11_PMKID_LIST;
pub const DOT11_PMKID_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_CONNECT_REQUEST: u32 =
    NWF_DEFINE_OID!(129, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_EXCLUDE_UNENCRYPTED: u32 =
    NWF_DEFINE_OID!(130, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_STATISTICS: u32 =
    NWF_DEFINE_OID!(131, NWF_STATISTICS_OID, NWF_MANDATORY_OID);
pub const DOT11_STATISTICS_UNKNOWN: ULONGLONG = -1i64 as u64;
STRUCT!{struct DOT11_PHY_FRAME_STATISTICS {
    ullTransmittedFrameCount: ULONGLONG,
    ullMulticastTransmittedFrameCount: ULONGLONG,
    ullFailedCount: ULONGLONG,
    ullRetryCount: ULONGLONG,
    ullMultipleRetryCount: ULONGLONG,
    ullMaxTXLifetimeExceededCount: ULONGLONG,
    ullTransmittedFragmentCount: ULONGLONG,
    ullRTSSuccessCount: ULONGLONG,
    ullRTSFailureCount: ULONGLONG,
    ullACKFailureCount: ULONGLONG,
    ullReceivedFrameCount: ULONGLONG,
    ullMulticastReceivedFrameCount: ULONGLONG,
    ullPromiscuousReceivedFrameCount: ULONGLONG,
    ullMaxRXLifetimeExceededCount: ULONGLONG,
    ullFrameDuplicateCount: ULONGLONG,
    ullReceivedFragmentCount: ULONGLONG,
    ullPromiscuousReceivedFragmentCount: ULONGLONG,
    ullFCSErrorCount: ULONGLONG,
}}
pub type PDOT11_PHY_FRAME_STATISTICS = *mut DOT11_PHY_FRAME_STATISTICS;
STRUCT!{struct DOT11_MAC_FRAME_STATISTICS {
    ullTransmittedFrameCount: ULONGLONG,
    ullReceivedFrameCount: ULONGLONG,
    ullTransmittedFailureFrameCount: ULONGLONG,
    ullReceivedFailureFrameCount: ULONGLONG,
    ullWEPExcludedCount: ULONGLONG,
    ullTKIPLocalMICFailures: ULONGLONG,
    ullTKIPReplays: ULONGLONG,
    ullTKIPICVErrorCount: ULONGLONG,
    ullCCMPReplays: ULONGLONG,
    ullCCMPDecryptErrors: ULONGLONG,
    ullWEPUndecryptableCount: ULONGLONG,
    ullWEPICVErrorCount: ULONGLONG,
    ullDecryptSuccessCount: ULONGLONG,
    ullDecryptFailureCount: ULONGLONG,
}}
pub type PDOT11_MAC_FRAME_STATISTICS = *mut DOT11_MAC_FRAME_STATISTICS;
STRUCT!{struct DOT11_STATISTICS {
    Header: NDIS_OBJECT_HEADER,
    ullFourWayHandshakeFailures: ULONGLONG,
    ullTKIPCounterMeasuresInvoked: ULONGLONG,
    ullReserved: ULONGLONG,
    MacUcastCounters: DOT11_MAC_FRAME_STATISTICS,
    MacMcastCounters: DOT11_MAC_FRAME_STATISTICS,
    PhyCounters: [DOT11_PHY_FRAME_STATISTICS; 1],
}}
pub type PDOT11_STATISTICS = *mut DOT11_STATISTICS;
pub const DOT11_STATISTICS_REVISION_1: UCHAR = 1;
pub const OID_DOT11_PRIVACY_EXEMPTION_LIST: u32 =
    NWF_DEFINE_OID!(132, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_PRIVACY_EXEMPTION {
    usEtherType: USHORT,
    usExemptionActionType: USHORT,
    usExemptionPacketType: USHORT,
}}
pub type PDOT11_PRIVACY_EXEMPTION = *mut DOT11_PRIVACY_EXEMPTION;
pub const DOT11_EXEMPT_NO_EXEMPTION: USHORT = 0;
pub const DOT11_EXEMPT_ALWAYS: USHORT = 1;
pub const DOT11_EXEMPT_ON_KEY_MAPPING_KEY_UNAVAILABLE: USHORT = 2;
pub const DOT11_EXEMPT_UNICAST: USHORT = 1;
pub const DOT11_EXEMPT_MULTICAST: USHORT = 2;
pub const DOT11_EXEMPT_BOTH: USHORT = 3;
STRUCT!{struct DOT11_PRIVACY_EXEMPTION_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    PrivacyExemptionEntries: [DOT11_PRIVACY_EXEMPTION; 1],
}}
pub type PDOT11_PRIVACY_EXEMPTION_LIST = *mut DOT11_PRIVACY_EXEMPTION_LIST;
pub const DOT11_PRIVACY_EXEMPTION_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_ENABLED_AUTHENTICATION_ALGORITHM: u32 =
    NWF_DEFINE_OID!(133, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_AUTH_ALGORITHM_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    AlgorithmIds: [DOT11_AUTH_ALGORITHM; 1],
}}
pub type PDOT11_AUTH_ALGORITHM_LIST = *mut DOT11_AUTH_ALGORITHM_LIST;
pub const DOT11_AUTH_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR: u32 =
    NWF_DEFINE_OID!(134, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_AUTH_CIPHER_PAIR_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    AuthCipherPairs: [DOT11_AUTH_CIPHER_PAIR; 1],
}}
pub type PDOT11_AUTH_CIPHER_PAIR_LIST = *mut DOT11_AUTH_CIPHER_PAIR_LIST;
pub const DOT11_AUTH_CIPHER_PAIR_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_ENABLED_UNICAST_CIPHER_ALGORITHM: u32 =
    NWF_DEFINE_OID!(135, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_CIPHER_ALGORITHM_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    AlgorithmIds: [DOT11_CIPHER_ALGORITHM; 1],
}}
pub type PDOT11_CIPHER_ALGORITHM_LIST = *mut DOT11_CIPHER_ALGORITHM_LIST;
pub const DOT11_CIPHER_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR: u32 =
    NWF_DEFINE_OID!(136, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_ENABLED_MULTICAST_CIPHER_ALGORITHM: u32 =
    NWF_DEFINE_OID!(137, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_CIPHER_DEFAULT_KEY_ID: u32 =
    NWF_DEFINE_OID!(138, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_CIPHER_DEFAULT_KEY: u32 =
    NWF_DEFINE_OID!(139, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_CIPHER_DEFAULT_KEY_VALUE {
    Header: NDIS_OBJECT_HEADER,
    uKeyIndex: ULONG,
    AlgorithmId: DOT11_CIPHER_ALGORITHM,
    MacAddr: DOT11_MAC_ADDRESS,
    bDelete: BOOLEAN,
    bStatic: BOOLEAN,
    usKeyLength: USHORT,
    ucKey: [UCHAR; 1],
}}
pub type PDOT11_CIPHER_DEFAULT_KEY_VALUE = *mut DOT11_CIPHER_DEFAULT_KEY_VALUE;
pub const DOT11_CIPHER_DEFAULT_KEY_VALUE_REVISION_1: UCHAR = 1;
STRUCT!{struct DOT11_KEY_ALGO_TKIP_MIC {
    ucIV48Counter: [UCHAR; 6],
    ulTKIPKeyLength: ULONG,
    ulMICKeyLength: ULONG,
    ucTKIPMICKeys: [UCHAR; 1],
}}
pub type PDOT11_KEY_ALGO_TKIP_MIC = *mut DOT11_KEY_ALGO_TKIP_MIC;
STRUCT!{struct DOT11_KEY_ALGO_CCMP {
    ucIV48Counter: [UCHAR; 6],
    ulCCMPKeyLength: ULONG,
    ucCCMPKey: [UCHAR; 1],
}}
pub type PDOT11_KEY_ALGO_CCMP = *mut DOT11_KEY_ALGO_CCMP;
STRUCT!{struct DOT11_KEY_ALGO_GCMP {
    ucIV48Counter: [UCHAR; 6],
    ulGCMPKeyLength: ULONG,
    ucGCMPKey: [UCHAR; 1],
}}
pub type PDOT11_KEY_ALGO_GCMP = *mut DOT11_KEY_ALGO_GCMP;
STRUCT!{struct DOT11_KEY_ALGO_BIP {
    ucIPN: [UCHAR; 6],
    ulBIPKeyLength: ULONG,
    ucBIPKey: [UCHAR; 1],
}}
pub type PDOT11_KEY_ALGO_BIP = *mut DOT11_KEY_ALGO_BIP;
pub const OID_DOT11_CIPHER_KEY_MAPPING_KEY: u32 =
    NWF_DEFINE_OID!(140, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
ENUM!{enum DOT11_DIRECTION {
    DOT11_DIR_INBOUND = 1,
    DOT11_DIR_OUTBOUND = 2,
    DOT11_DIR_BOTH = 3,
}}
pub type PDOT11_DIRECTION = *mut DOT11_DIRECTION;
pub const DOT11_CIPHER_KEY_MAPPING_KEY_VALUE_BYTE_ARRAY_REVISION_1: UCHAR = 1;
STRUCT!{struct DOT11_CIPHER_KEY_MAPPING_KEY_VALUE {
    PeerMacAddr: DOT11_MAC_ADDRESS,
    AlgorithmId: DOT11_CIPHER_ALGORITHM,
    Direction: DOT11_DIRECTION,
    bDelete: BOOLEAN,
    bStatic: BOOLEAN,
    usKeyLength: USHORT,
    ucKey: [UCHAR; 1],
}}
pub type PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE = *mut DOT11_CIPHER_KEY_MAPPING_KEY_VALUE;
pub const OID_DOT11_ENUM_ASSOCIATION_INFO: u32 =
    NWF_DEFINE_OID!(141, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
ENUM!{enum DOT11_ASSOCIATION_STATE {
    dot11_assoc_state_zero = 0,
    dot11_assoc_state_unauth_unassoc = 1,
    dot11_assoc_state_auth_unassoc = 2,
    dot11_assoc_state_auth_assoc = 3,
}}
pub type PDOT11_ASSOCIATION_STATE = *mut DOT11_ASSOCIATION_STATE;
STRUCT!{struct DOT11_ASSOCIATION_INFO_EX {
    PeerMacAddress: DOT11_MAC_ADDRESS,
    BSSID: DOT11_MAC_ADDRESS,
    usCapabilityInformation: USHORT,
    usListenInterval: USHORT,
    ucPeerSupportedRates: [UCHAR; 255],
    usAssociationID: USHORT,
    dot11AssociationState: DOT11_ASSOCIATION_STATE,
    dot11PowerMode: DOT11_POWER_MODE,
    liAssociationUpTime: LARGE_INTEGER,
    ullNumOfTxPacketSuccesses: ULONGLONG,
    ullNumOfTxPacketFailures: ULONGLONG,
    ullNumOfRxPacketSuccesses: ULONGLONG,
    ullNumOfRxPacketFailures: ULONGLONG,
}}
pub type PDOT11_ASSOCIATION_INFO_EX = *mut DOT11_ASSOCIATION_INFO_EX;
STRUCT!{struct DOT11_ASSOCIATION_INFO_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11AssocInfo: [DOT11_ASSOCIATION_INFO_EX; 1],
}}
pub type PDOT11_ASSOCIATION_INFO_LIST = *mut DOT11_ASSOCIATION_INFO_LIST;
pub const DOT11_ASSOCIATION_INFO_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_DISCONNECT_REQUEST: u32 =
    NWF_DEFINE_OID!(142, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_UNICAST_USE_GROUP_ENABLED: u32 =
    NWF_DEFINE_OID!(143, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_HARDWARE_PHY_STATE: u32 =
    NWF_DEFINE_OID!(144, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_DESIRED_PHY_LIST: u32 =
    NWF_DEFINE_OID!(145, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_PHY_ID_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    dot11PhyId: [ULONG; 1],
}}
pub type PDOT11_PHY_ID_LIST = *mut DOT11_PHY_ID_LIST;
pub const DOT11_PHY_ID_LIST_REVISION_1: UCHAR = 1;
pub const DOT11_PHY_ID_ANY: ULONG = 0xffffffff;
pub const OID_DOT11_CURRENT_PHY_ID: u32 =
    NWF_DEFINE_OID!(146, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_MEDIA_STREAMING_ENABLED: u32 =
    NWF_DEFINE_OID!(147, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_UNREACHABLE_DETECTION_THRESHOLD: u32 =
    NWF_DEFINE_OID!(148, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_ACTIVE_PHY_LIST: u32 =
    NWF_DEFINE_OID!(149, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_EXTSTA_CAPABILITY: u32 =
    NWF_DEFINE_OID!(150, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_EXTSTA_CAPABILITY {
    Header: NDIS_OBJECT_HEADER,
    uScanSSIDListSize: ULONG,
    uDesiredBSSIDListSize: ULONG,
    uDesiredSSIDListSize: ULONG,
    uExcludedMacAddressListSize: ULONG,
    uPrivacyExemptionListSize: ULONG,
    uKeyMappingTableSize: ULONG,
    uDefaultKeyTableSize: ULONG,
    uWEPKeyValueMaxLength: ULONG,
    uPMKIDCacheSize: ULONG,
    uMaxNumPerSTADefaultKeyTables: ULONG,
}}
pub type PDOT11_EXTSTA_CAPABILITY = *mut DOT11_EXTSTA_CAPABILITY;
pub const DOT11_EXTSTA_CAPABILITY_REVISION_1: UCHAR = 1;
pub const OID_DOT11_DATA_RATE_MAPPING_TABLE: u32 =
    NWF_DEFINE_OID!(151, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_DATA_RATE_MAPPING_ENTRY {
    ucDataRateIndex: UCHAR,
    ucDataRateFlag: UCHAR,
    usDataRateValue: USHORT,
}}
pub type PDOT11_DATA_RATE_MAPPING_ENTRY = *mut DOT11_DATA_RATE_MAPPING_ENTRY;
STRUCT!{struct DOT11_DATA_RATE_MAPPING_TABLE {
    Header: NDIS_OBJECT_HEADER,
    uDataRateMappingLength: ULONG,
    DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; DOT11_RATE_SET_MAX_LENGTH],
}}
pub type PDOT11_DATA_RATE_MAPPING_TABLE = *mut DOT11_DATA_RATE_MAPPING_TABLE;
pub const DOT11_DATA_RATE_MAPPING_TABLE_REVISION_1: UCHAR = 1;
pub const DOT11_DATA_RATE_NON_STANDARD: UCHAR = 0x01;
pub const DOT11_DATA_RATE_INDEX_MASK: UCHAR = 0x7f;
pub const OID_DOT11_SUPPORTED_COUNTRY_OR_REGION_STRING: u32 =
    NWF_DEFINE_OID!(152, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_COUNTRY_OR_REGION_STRING_LIST {
    Header: NDIS_OBJECT_HEADER,
    uNumOfEntries: ULONG,
    uTotalNumOfEntries: ULONG,
    CountryOrRegionStrings: [DOT11_COUNTRY_OR_REGION_STRING; 1],
}}
pub type PDOT11_COUNTRY_OR_REGION_STRING_LIST = *mut DOT11_COUNTRY_OR_REGION_STRING_LIST;
pub const DOT11_COUNTRY_OR_REGION_STRING_LIST_REVISION_1: UCHAR = 1;
pub const OID_DOT11_DESIRED_COUNTRY_OR_REGION_STRING: u32 =
    NWF_DEFINE_OID!(153, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_PORT_STATE_NOTIFICATION: u32 =
    NWF_DEFINE_OID!(154, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
STRUCT!{struct DOT11_PORT_STATE_NOTIFICATION {
    Header: NDIS_OBJECT_HEADER,
    PeerMac: DOT11_MAC_ADDRESS,
    bOpen: BOOLEAN,
}}
pub type PDOT11_PORT_STATE_NOTIFICATION = *mut DOT11_PORT_STATE_NOTIFICATION;
pub const DOT11_PORT_STATE_NOTIFICATION_REVISION_1: UCHAR = 1;
pub const OID_DOT11_IBSS_PARAMS: u32 =
    NWF_DEFINE_OID!(155, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_IBSS_PARAMS {
    Header: NDIS_OBJECT_HEADER,
    bJoinOnly: BOOLEAN,
    uIEsOffset: ULONG,
    uIEsLength: ULONG,
}}
pub type PDOT11_IBSS_PARAMS = *mut DOT11_IBSS_PARAMS;
pub const DOT11_IBSS_PARAMS_REVISION_1: UCHAR = 1;
pub const OID_DOT11_QOS_PARAMS: u32 = NWF_DEFINE_OID!(156, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
STRUCT!{struct DOT11_QOS_PARAMS {
    Header: NDIS_OBJECT_HEADER,
    ucEnabledQoSProtocolFlags: UCHAR,
}}
pub type PDOT11_QOS_PARAMS = *mut DOT11_QOS_PARAMS;
pub const DOT11_QOS_PARAMS_REVISION_1: UCHAR = 1;
pub const DOT11_QOS_PROTOCOL_FLAG_WMM: UCHAR = 0x01;
pub const DOT11_QOS_PROTOCOL_FLAG_11E: UCHAR = 0x02;
pub const OID_DOT11_SAFE_MODE_ENABLED: u32 =
    NWF_DEFINE_OID!(157, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_HIDDEN_NETWORK_ENABLED: u32 =
    NWF_DEFINE_OID!(158, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const OID_DOT11_ASSOCIATION_PARAMS: u32 =
    NWF_DEFINE_OID!(159, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
STRUCT!{struct DOT11_ASSOCIATION_PARAMS {
    Header: NDIS_OBJECT_HEADER,
    BSSID: DOT11_MAC_ADDRESS,
    uAssocRequestIEsOffset: ULONG,
    uAssocRequestIEsLength: ULONG,
}}
pub type PDOT11_ASSOCIATION_PARAMS = *mut DOT11_ASSOCIATION_PARAMS;
pub const DOT11_ASSOCIATION_PARAMS_REVISION_1: UCHAR = 1;
pub const OID_DOT11_SAFE_MODE_HT_ENABLED: u32 =
    NWF_DEFINE_OID!(160, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
pub const DOT11_MAX_NUM_OF_FRAGMENTS: USHORT = 16;
pub const DOT11_PRIORITY_CONTENTION: i32 = 0;
pub const DOT11_PRIORITY_CONTENTION_FREE: i32 = 1;
pub const DOT11_SERVICE_CLASS_REORDERABLE_MULTICAST: i32 = 0;
pub const DOT11_SERVICE_CLASS_STRICTLY_ORDERED: i32 = 1;
pub const DOT11_FLAGS_80211B_SHORT_PREAMBLE: u32 = 0x00000001;
pub const DOT11_FLAGS_80211B_PBCC: u32 = 0x00000002;
pub const DOT11_FLAGS_80211B_CHANNEL_AGILITY: u32 = 0x00000004;
pub const DOT11_FLAGS_PS_ON: u32 = 0x00000008;
pub const DOT11_FLAGS_80211G_DSSS_OFDM: u32 = 0x00000010;
pub const DOT11_FLAGS_80211G_USE_PROTECTION: u32 = 0x00000020;
pub const DOT11_FLAGS_80211G_NON_ERP_PRESENT: u32 = 0x00000040;
pub const DOT11_FLAGS_80211G_BARKER_PREAMBLE_MODE: u32 = 0x00000080;
pub const DOT11_WME_PACKET: u32 = 0x00000100;
STRUCT!{struct DOT11_FRAGMENT_DESCRIPTOR {
    uOffset: ULONG,
    uLength: ULONG,
}}
pub type PDOT11_FRAGMENT_DESCRIPTOR = *mut DOT11_FRAGMENT_DESCRIPTOR;
STRUCT!{struct DOT11_PER_MSDU_COUNTERS {
    uTransmittedFragmentCount: ULONG,
    uRetryCount: ULONG,
    uRTSSuccessCount: ULONG,
    uRTSFailureCount: ULONG,
    uACKFailureCount: ULONG,
}}
pub type PDOT11_PER_MSDU_COUNTERS = *mut DOT11_PER_MSDU_COUNTERS;
STRUCT!{struct DOT11_HRDSSS_PHY_ATTRIBUTES {
    bShortPreambleOptionImplemented: BOOLEAN,
    bPBCCOptionImplemented: BOOLEAN,
    bChannelAgilityPresent: BOOLEAN,
    uHRCCAModeSupported: ULONG,
}}
pub type PDOT11_HRDSSS_PHY_ATTRIBUTES = *mut DOT11_HRDSSS_PHY_ATTRIBUTES;
STRUCT!{struct DOT11_OFDM_PHY_ATTRIBUTES {
    uFrequencyBandsSupported: ULONG,
}}
pub type PDOT11_OFDM_PHY_ATTRIBUTES = *mut DOT11_OFDM_PHY_ATTRIBUTES;
STRUCT!{struct DOT11_ERP_PHY_ATTRIBUTES {
    HRDSSSAttributes: DOT11_HRDSSS_PHY_ATTRIBUTES,
    bERPPBCCOptionImplemented: BOOLEAN,
    bDSSSOFDMOptionImplemented: BOOLEAN,
    bShortSlotTimeOptionImplemented: BOOLEAN,
}}
pub type PDOT11_ERP_PHY_ATTRIBUTES = *mut DOT11_ERP_PHY_ATTRIBUTES;
pub const DOT11_PHY_ATTRIBUTES_REVISION_1: UCHAR = 1;
UNION!{union DOT11_PHY_ATTRIBUTES_u {
    [u32; 3],
    HRDSSSAttributes HRDSSSAttributes_mut: DOT11_HRDSSS_PHY_ATTRIBUTES,
    OFDMAttributes OFDMAttributes_mut: DOT11_OFDM_PHY_ATTRIBUTES,
    ERPAttributes ERPAttributes_mut: DOT11_ERP_PHY_ATTRIBUTES,
}}
STRUCT!{struct DOT11_PHY_ATTRIBUTES {
    Header: NDIS_OBJECT_HEADER,
    PhyType: DOT11_PHY_TYPE,
    bHardwarePhyState: BOOLEAN,
    bSoftwarePhyState: BOOLEAN,
    bCFPollable: BOOLEAN,
    uMPDUMaxLength: ULONG,
    TempType: DOT11_TEMP_TYPE,
    DiversitySupport: DOT11_DIVERSITY_SUPPORT,
    u: DOT11_PHY_ATTRIBUTES_u,
    uNumberSupportedPowerLevels: ULONG,
    TxPowerLevels: [ULONG; 8],
    uNumDataRateMappingEntries: ULONG,
    DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; DOT11_RATE_SET_MAX_LENGTH],
    SupportedDataRatesValue: DOT11_SUPPORTED_DATA_RATES_VALUE_V2,
}}
pub type PDOT11_PHY_ATTRIBUTES = *mut DOT11_PHY_ATTRIBUTES;
pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_OID_SUPPORTED: UINT8 = 0x1;
pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_CERTIFIED: UINT8 = 0x2;
pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_RESERVED: UINT8 = 0xC;
pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_1: UCHAR = 1;
pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_2: UCHAR = 2;
pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_3: UCHAR = 3;
pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_4: UCHAR = 4;
STRUCT!{struct DOT11_EXTSTA_ATTRIBUTES {
    Header: NDIS_OBJECT_HEADER,
    uScanSSIDListSize: ULONG,
    uDesiredBSSIDListSize: ULONG,
    uDesiredSSIDListSize: ULONG,
    uExcludedMacAddressListSize: ULONG,
    uPrivacyExemptionListSize: ULONG,
    uKeyMappingTableSize: ULONG,
    uDefaultKeyTableSize: ULONG,
    uWEPKeyValueMaxLength: ULONG,
    uPMKIDCacheSize: ULONG,
    uMaxNumPerSTADefaultKeyTables: ULONG,
    bStrictlyOrderedServiceClassImplemented: BOOLEAN,
    ucSupportedQoSProtocolFlags: UCHAR,
    bSafeModeImplemented: BOOLEAN,
    uNumSupportedCountryOrRegionStrings: ULONG,
    pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
    uInfraNumSupportedUcastAlgoPairs: ULONG,
    pInfraSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
    uInfraNumSupportedMcastAlgoPairs: ULONG,
    pInfraSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
    uAdhocNumSupportedUcastAlgoPairs: ULONG,
    pAdhocSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
    uAdhocNumSupportedMcastAlgoPairs: ULONG,
    pAdhocSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
    bAutoPowerSaveMode: BOOLEAN,
    uMaxNetworkOffloadListSize: ULONG,
    bMFPCapable: BOOLEAN,
    uInfraNumSupportedMcastMgmtAlgoPairs: ULONG,
    pInfraSupportedMcastMgmtAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
    bNeighborReportSupported: BOOLEAN,
    bAPChannelReportSupported: BOOLEAN,
    bActionFramesSupported: BOOLEAN,
    bANQPQueryOffloadSupported: BOOLEAN,
    bHESSIDConnectionSupported: BOOLEAN,
}}
pub type PDOT11_EXTSTA_ATTRIBUTES = *mut DOT11_EXTSTA_ATTRIBUTES;
STRUCT!{struct DOT11_RECV_EXTENSION_INFO {
    uVersion: ULONG,
    pvReserved: PVOID,
    dot11PhyType: DOT11_PHY_TYPE,
    uChCenterFrequency: ULONG,
    lRSSI: LONG,
    lRSSIMin: LONG,
    lRSSIMax: LONG,
    uRSSI: ULONG,
    ucPriority: UCHAR,
    ucDataRate: UCHAR,
    ucPeerMacAddress: [UCHAR; 6],
    dwExtendedStatus: ULONG,
    hWEPOffloadContext: HANDLE,
    hAuthOffloadContext: HANDLE,
    usWEPAppliedMask: USHORT,
    usWPAMSDUPriority: USHORT,
    dot11LowestIV48Counter: DOT11_IV48_COUNTER,
    usDot11LeftRWBitMap: USHORT,
    dot11HighestIV48Counter: DOT11_IV48_COUNTER,
    usDot11RightRWBitMap: USHORT,
    usNumberOfMPDUsReceived: USHORT,
    usNumberOfFragments: USHORT,
    pNdisPackets: [PVOID; 1],
}}
pub type PDOT11_RECV_EXTENSION_INFO = *mut DOT11_RECV_EXTENSION_INFO;
STRUCT!{struct DOT11_RECV_EXTENSION_INFO_V2 {
    uVersion: ULONG,
    pvReserved: PVOID,
    dot11PhyType: DOT11_PHY_TYPE,
    uChCenterFrequency: ULONG,
    lRSSI: LONG,
    uRSSI: ULONG,
    ucPriority: UCHAR,
    ucDataRate: UCHAR,
    ucPeerMacAddress: [UCHAR; 6],
    dwExtendedStatus: ULONG,
    hWEPOffloadContext: HANDLE,
    hAuthOffloadContext: HANDLE,
    usWEPAppliedMask: USHORT,
    usWPAMSDUPriority: USHORT,
    dot11LowestIV48Counter: DOT11_IV48_COUNTER,
    usDot11LeftRWBitMap: USHORT,
    dot11HighestIV48Counter: DOT11_IV48_COUNTER,
    usDot11RightRWBitMap: USHORT,
    usNumberOfMPDUsReceived: USHORT,
    usNumberOfFragments: USHORT,
    pNdisPackets: [PVOID; 1],
}}
pub type PDOT11_RECV_EXTENSION_INFO_V2 = *mut DOT11_RECV_EXTENSION_INFO_V2;
pub const DOT11_STATUS_SUCCESS: NDIS_STATUS = 0x00000001;
pub const DOT11_STATUS_RETRY_LIMIT_EXCEEDED: NDIS_STATUS = 0x00000002;
pub const DOT11_STATUS_UNSUPPORTED_PRIORITY: NDIS_STATUS = 0x00000004;
pub const DOT11_STATUS_UNSUPPORTED_SERVICE_CLASS: NDIS_STATUS = 0x00000008;
pub const DOT11_STATUS_UNAVAILABLE_PRIORITY: NDIS_STATUS = 0x00000010;
pub const DOT11_STATUS_UNAVAILABLE_SERVICE_CLASS: NDIS_STATUS = 0x00000020;
pub const DOT11_STATUS_XMIT_MSDU_TIMER_EXPIRED: NDIS_STATUS = 0x00000040;
pub const DOT11_STATUS_UNAVAILABLE_BSS: NDIS_STATUS = 0x00000080;
pub const DOT11_STATUS_EXCESSIVE_DATA_LENGTH: NDIS_STATUS = 0x00000100;
pub const DOT11_STATUS_ENCRYPTION_FAILED: NDIS_STATUS = 0x00000200;
pub const DOT11_STATUS_WEP_KEY_UNAVAILABLE: NDIS_STATUS = 0x00000400;
pub const DOT11_STATUS_ICV_VERIFIED: NDIS_STATUS = 0x00000800;
pub const DOT11_STATUS_PACKET_REASSEMBLED: NDIS_STATUS = 0x00001000;
pub const DOT11_STATUS_PACKET_NOT_REASSEMBLED: NDIS_STATUS = 0x00002000;
pub const DOT11_STATUS_GENERATE_AUTH_FAILED: NDIS_STATUS = 0x00004000;
pub const DOT11_STATUS_AUTH_NOT_VERIFIED: NDIS_STATUS = 0x00008000;
pub const DOT11_STATUS_AUTH_VERIFIED: NDIS_STATUS = 0x00010000;
pub const DOT11_STATUS_AUTH_FAILED: NDIS_STATUS = 0x00020000;
pub const DOT11_STATUS_PS_LIFETIME_EXPIRED: NDIS_STATUS = 0x00040000;
STRUCT!{struct DOT11_STATUS_INDICATION {
    uStatusType: ULONG,
    ndisStatus: NDIS_STATUS,
}}
pub type PDOT11_STATUS_INDICATION = *mut DOT11_STATUS_INDICATION;
pub const DOT11_STATUS_RESET_CONFIRM: ULONG = 4;
pub const DOT11_STATUS_SCAN_CONFIRM: ULONG = 1;
pub const DOT11_STATUS_JOIN_CONFIRM: ULONG = 2;
pub const DOT11_STATUS_START_CONFIRM: ULONG = 3;
pub const DOT11_STATUS_AP_JOIN_CONFIRM: ULONG = 5;
pub const DOT11_STATUS_MPDU_MAX_LENGTH_CHANGED: ULONG = 6;
STRUCT!{struct DOT11_MPDU_MAX_LENGTH_INDICATION {
    Header: NDIS_OBJECT_HEADER,
    uPhyId: ULONG,
    uMPDUMaxLength: ULONG,
}}
pub type PDOT11_MPDU_MAX_LENGTH_INDICATION = *mut DOT11_MPDU_MAX_LENGTH_INDICATION;
pub const DOT11_MPDU_MAX_LENGTH_INDICATION_REVISION_1: UCHAR = 1;
STRUCT!{struct DOT11_ASSOCIATION_START_PARAMETERS {
    Header: NDIS_OBJECT_HEADER,
    MacAddr: DOT11_MAC_ADDRESS,
    SSID: DOT11_SSID,
    uIHVDataOffset: ULONG,
    uIHVDataSize: ULONG,
}}
pub type PDOT11_ASSOCIATION_START_PARAMETERS = *mut DOT11_ASSOCIATION_START_PARAMETERS;
pub const DOT11_ASSOCIATION_START_PARAMETERS_REVISION_1: UCHAR = 1;
pub const DOT11_ENCAP_RFC_1042: USHORT = 1;
pub const DOT11_ENCAP_802_1H: USHORT = 2;
STRUCT!{struct DOT11_ENCAP_ENTRY {
    usEtherType: USHORT,
    usEncapType: USHORT,
}}
pub type PDOT11_ENCAP_ENTRY = *mut DOT11_ENCAP_ENTRY;
ENUM!{enum DOT11_DS_INFO {
    DOT11_DS_CHANGED = 0,
    DOT11_DS_UNCHANGED = 1,
    DOT11_DS_UNKNOWN = 2,
}}
pub type PDOT11_DS_INFO = *mut DOT11_DS_INFO;
pub type DOT11_ASSOC_STATUS = ULONG;
pub const DOT11_ASSOC_STATUS_SUCCESS: DOT11_ASSOC_STATUS = 0;
pub const DOT11_ASSOC_STATUS_FAILURE: DOT11_ASSOC_STATUS = 0x00000001;
pub const DOT11_ASSOC_STATUS_UNREACHABLE: DOT11_ASSOC_STATUS = 0x00000002;
pub const DOT11_ASSOC_STATUS_RADIO_OFF: DOT11_ASSOC_STATUS = 0x00000003;
pub const DOT11_ASSOC_STATUS_PHY_DISABLED: DOT11_ASSOC_STATUS = 0x00000004;
pub const DOT11_ASSOC_STATUS_CANCELLED: DOT11_ASSOC_STATUS = 0x00000005;
pub const DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS = 0x00000006;
pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS: DOT11_ASSOC_STATUS = 0x00000007;
pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_ROAMING: DOT11_ASSOC_STATUS = 0x00000008;
pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_RESET: DOT11_ASSOC_STATUS = 0x00000009;
pub const DOT11_ASSOC_STATUS_SYSTEM_ERROR: DOT11_ASSOC_STATUS = 0x0000000a;
pub const DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND: DOT11_ASSOC_STATUS = 0x0000000b;
pub const DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST: DOT11_ASSOC_STATUS = 0x0000000c;
pub const DOT11_ASSOC_STATUS_ROAMING_ADHOC: DOT11_ASSOC_STATUS = 0x0000000d;
pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS = 0x00010000;
pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_START: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_END: DOT11_ASSOC_STATUS = 0x0001ffff;
pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS = 0x00020000;
pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_START: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_END: DOT11_ASSOC_STATUS = 0x0002ffff;
pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE: DOT11_ASSOC_STATUS = 0x00030000;
pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_START: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE;
pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_END: DOT11_ASSOC_STATUS = 0x0003ffff;
pub const DOT11_ASSOC_STATUS_REASON_CODE_MASK: DOT11_ASSOC_STATUS = 0xffff;
pub const DOT11_ASSOC_STATUS_IHV_START: DOT11_ASSOC_STATUS = 0x80000000;
pub const DOT11_ASSOC_STATUS_IHV_END: DOT11_ASSOC_STATUS = 0xffffffff;
STRUCT!{struct DOT11_ASSOCIATION_COMPLETION_PARAMETERS {
    Header: NDIS_OBJECT_HEADER,
    MacAddr: DOT11_MAC_ADDRESS,
    uStatus: DOT11_ASSOC_STATUS,
    bReAssocReq: BOOLEAN,
    bReAssocResp: BOOLEAN,
    uAssocReqOffset: ULONG,
    uAssocReqSize: ULONG,
    uAssocRespOffset: ULONG,
    uAssocRespSize: ULONG,
    uBeaconOffset: ULONG,
    uBeaconSize: ULONG,
    uIHVDataOffset: ULONG,
    uIHVDataSize: ULONG,
    AuthAlgo: DOT11_AUTH_ALGORITHM,
    UnicastCipher: DOT11_CIPHER_ALGORITHM,
    MulticastCipher: DOT11_CIPHER_ALGORITHM,
    uActivePhyListOffset: ULONG,
    uActivePhyListSize: ULONG,
    bFourAddressSupported: BOOLEAN,
    bPortAuthorized: BOOLEAN,
    ucActiveQoSProtocol: UCHAR,
    DSInfo: DOT11_DS_INFO,
    uEncapTableOffset: ULONG,
    uEncapTableSize: ULONG,
    MulticastMgmtCipher: DOT11_CIPHER_ALGORITHM,
    uAssocComebackTime: ULONG,
}}
pub type PDOT11_ASSOCIATION_COMPLETION_PARAMETERS = *mut DOT11_ASSOCIATION_COMPLETION_PARAMETERS;
pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_2: UCHAR = 2;
STRUCT!{struct DOT11_CONNECTION_START_PARAMETERS {
    Header: NDIS_OBJECT_HEADER,
    BSSType: DOT11_BSS_TYPE,
    AdhocBSSID: DOT11_MAC_ADDRESS,
    AdhocSSID: DOT11_SSID,
}}
pub type PDOT11_CONNECTION_START_PARAMETERS = *mut DOT11_CONNECTION_START_PARAMETERS;
pub const DOT11_CONNECTION_START_PARAMETERS_REVISION_1: UCHAR = 1;
pub const DOT11_CONNECTION_STATUS_SUCCESS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_SUCCESS;
pub const DOT11_CONNECTION_STATUS_FAILURE: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_FAILURE;
pub const DOT11_CONNECTION_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED;
pub const DOT11_CONNECTION_STATUS_PHY_POWER_DOWN: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_RADIO_OFF;
pub const DOT11_CONNECTION_STATUS_CANCELLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_CANCELLED;
pub const DOT11_CONNECTION_STATUS_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
pub const DOT11_CONNECTION_STATUS_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
STRUCT!{struct DOT11_CONNECTION_COMPLETION_PARAMETERS {
    Header: NDIS_OBJECT_HEADER,
    uStatus: DOT11_ASSOC_STATUS,
}}
pub type PDOT11_CONNECTION_COMPLETION_PARAMETERS = *mut DOT11_CONNECTION_COMPLETION_PARAMETERS;
pub const DOT11_CONNECTION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
pub const DOT11_ROAMING_REASON_BETTER_AP_FOUND: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND;
pub const DOT11_ROAMING_REASON_ASSOCIATION_LOST: DOT11_ASSOC_STATUS =
    DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST;
pub const DOT11_ROAMING_REASON_ADHOC: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_ROAMING_ADHOC;
--> --------------------

--> maximum size reached

--> --------------------

[ Verzeichnis aufwärts0.50unsichere Verbindung  Übersetzung europäischer Sprachen durch Browser  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge