1 // Licensed under the Apache License, Version 2.0 2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 4 // All files in the project carrying such notice may not be copied, modified, or distributed 5 // except according to those terms. 6 //! Structures used to hold wlan information. 7 use shared::basetsd::UINT8; 8 use shared::minwindef::{UCHAR, ULONG, USHORT}; 9 ENUM!{enum DOT11_BSS_TYPE { 10 dot11_BSS_type_infrastructure = 1, 11 dot11_BSS_type_independent = 2, 12 dot11_BSS_type_any = 3, 13 }} 14 pub type PDOT11_BSS_TYPE = *mut DOT11_BSS_TYPE; 15 pub const DOT11_SSID_MAX_LENGTH: usize = 32; 16 STRUCT!{struct DOT11_SSID { 17 uSSIDLength: ULONG, 18 ucSSID: [UCHAR; DOT11_SSID_MAX_LENGTH], 19 }} 20 pub type PDOT11_SSID = *mut DOT11_SSID; 21 ENUM!{enum DOT11_AUTH_ALGORITHM { 22 DOT11_AUTH_ALGO_80211_OPEN = 1, 23 DOT11_AUTH_ALGO_80211_SHARED_KEY = 2, 24 DOT11_AUTH_ALGO_WPA = 3, 25 DOT11_AUTH_ALGO_WPA_PSK = 4, 26 DOT11_AUTH_ALGO_WPA_NONE = 5, 27 DOT11_AUTH_ALGO_RSNA = 6, 28 DOT11_AUTH_ALGO_RSNA_PSK = 7, 29 DOT11_AUTH_ALGO_IHV_START = 0x80000000, 30 DOT11_AUTH_ALGO_IHV_END = 0xffffffff, 31 }} 32 pub type PDOT11_AUTH_ALGORITHM = *mut DOT11_AUTH_ALGORITHM; 33 pub const DOT11_AUTH_ALGORITHM_OPEN_SYSTEM: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_80211_OPEN; 34 pub const DOT11_AUTH_ALGORITHM_SHARED_KEY: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_80211_SHARED_KEY; 35 pub const DOT11_AUTH_ALGORITHM_WPA: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_WPA; 36 pub const DOT11_AUTH_ALGORITHM_WPA_PSK: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_WPA_PSK; 37 pub const DOT11_AUTH_ALGORITHM_WPA_NONE: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_WPA_NONE; 38 pub const DOT11_AUTH_ALGORITHM_RSNA: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_RSNA; 39 pub const DOT11_AUTH_ALGORITHM_RSNA_PSK: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_RSNA_PSK; 40 ENUM!{enum DOT11_CIPHER_ALGORITHM { 41 DOT11_CIPHER_ALGO_NONE = 0x00, 42 DOT11_CIPHER_ALGO_WEP40 = 0x01, 43 DOT11_CIPHER_ALGO_TKIP = 0x02, 44 DOT11_CIPHER_ALGO_CCMP = 0x04, 45 DOT11_CIPHER_ALGO_WEP104 = 0x05, 46 DOT11_CIPHER_ALGO_BIP = 0x06, 47 DOT11_CIPHER_ALGO_GCMP = 0x08, 48 DOT11_CIPHER_ALGO_WPA_USE_GROUP = 0x100, 49 DOT11_CIPHER_ALGO_WEP = 0x101, 50 DOT11_CIPHER_ALGO_IHV_START = 0x80000000, 51 DOT11_CIPHER_ALGO_IHV_END = 0xffffffff, 52 }} 53 pub type PDOT11_CIPHER_ALGORITHM = *mut DOT11_CIPHER_ALGORITHM; 54 STRUCT!{struct DOT11_AUTH_CIPHER_PAIR { 55 AuthAlgoId: DOT11_AUTH_ALGORITHM, 56 CipherAlgoId: DOT11_CIPHER_ALGORITHM, 57 }} 58 pub type PDOT11_AUTH_CIPHER_PAIR = *mut DOT11_AUTH_CIPHER_PAIR; 59 pub const DOT11_OI_MAX_LENGTH: usize = 5; 60 pub const DOT11_OI_MIN_LENGTH: usize = 3; 61 STRUCT!{struct DOT11_OI { 62 OILength: USHORT, 63 OI: [UCHAR; DOT11_OI_MAX_LENGTH], 64 }} 65 pub type PDOT11_OI = *mut DOT11_OI; 66 STRUCT!{struct DOT11_ACCESSNETWORKOPTIONS { 67 AccessNetworkType: UINT8, 68 Internet: UINT8, 69 ASRA: UINT8, 70 ESR: UINT8, 71 UESA: UINT8, 72 }} 73 pub type PDOT11_ACCESSNETWORKOPTIONS = *mut DOT11_ACCESSNETWORKOPTIONS; 74 STRUCT!{struct DOT11_VENUEINFO { 75 VenueGroup: UINT8, 76 VenueType: UINT8, 77 }} 78 pub type PDOT11_VENUEINFO = *mut DOT11_VENUEINFO; 79