1use shared::basetsd::UINT8;
8use shared::minwindef::{UCHAR, ULONG, USHORT};
9use shared::ntddndis::{
10 NDIS_OBJECT_HEADER, NDIS_PACKET_TYPE_ALL_MULTICAST, NDIS_PACKET_TYPE_BROADCAST,
11 NDIS_PACKET_TYPE_DIRECTED, NDIS_PACKET_TYPE_MULTICAST, NDIS_PACKET_TYPE_PROMISCUOUS,
12 NDIS_STATUS,
13};
14use shared::wlantypes::{
15 DOT11_AUTH_ALGORITHM, DOT11_AUTH_CIPHER_PAIR, DOT11_BSS_TYPE, DOT11_CIPHER_ALGORITHM,
16 DOT11_SSID, PDOT11_AUTH_CIPHER_PAIR,
17};
18use um::winnt::{BOOLEAN, HANDLE, LARGE_INTEGER, LONG, PVOID, ULONGLONG};
19pub type DOT11_MAC_ADDRESS = [UCHAR; 6];
20pub type PDOT11_MAC_ADDRESS = *mut DOT11_MAC_ADDRESS;
21STRUCT!{struct DOT11_BSSID_LIST {
22 Header: NDIS_OBJECT_HEADER,
23 uNumOfEntries: ULONG,
24 uTotalNumOfEntries: ULONG,
25 BSSIDs: [DOT11_MAC_ADDRESS; 1],
26}}
27pub type PDOT11_BSSID_LIST = *mut DOT11_BSSID_LIST;
28pub const DOT11_BSSID_LIST_REVISION_1: UCHAR = 1;
29pub const DOT11_HESSID_LENGTH: usize = 6;
30pub type DOT11_HESSID = [UCHAR; DOT11_HESSID_LENGTH];
31pub type PDOT11_HESSID = *mut DOT11_HESSID;
32ENUM!{enum DOT11_PHY_TYPE {
33 dot11_phy_type_unknown = 0,
34 dot11_phy_type_any = dot11_phy_type_unknown,
35 dot11_phy_type_fhss = 1,
36 dot11_phy_type_dsss = 2,
37 dot11_phy_type_irbaseband = 3,
38 dot11_phy_type_ofdm = 4,
39 dot11_phy_type_hrdsss = 5,
40 dot11_phy_type_erp = 6,
41 dot11_phy_type_ht = 7,
42 dot11_phy_type_vht = 8,
43 dot11_phy_type_dmg = 9,
44 dot11_phy_type_IHV_start = 0x80000000,
45 dot11_phy_type_IHV_end = 0xffffffff,
46}}
47pub type PDOT11_PHY_TYPE = *mut DOT11_PHY_TYPE;
48pub const DOT11_RATE_SET_MAX_LENGTH: usize = 126;
49STRUCT!{struct DOT11_RATE_SET {
50 uRateSetLength: ULONG,
51 ucRateSet: [UCHAR; DOT11_RATE_SET_MAX_LENGTH],
52}}
53pub type PDOT11_RATE_SET = *mut DOT11_RATE_SET;
54pub type DOT11_COUNTRY_OR_REGION_STRING = [UCHAR; 3];
55pub type PDOT11_COUNTRY_OR_REGION_STRING = *mut DOT11_COUNTRY_OR_REGION_STRING;
56pub type DOT11_DIALOG_TOKEN = UCHAR;
57pub type DOT11_WFD_STATUS_CODE = UCHAR;
58pub type DOT11_WFD_MINOR_REASON_CODE = UCHAR;
59pub type DOT11_WFD_SERVICE_HASH = [UCHAR; 6];
60pub const DOT11_WFD_SERVICE_NAME_MAX_LENGTH: usize = 255;
61pub const DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH: usize = 21;
62pub const DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH: usize = 63;
63pub const DOT11_WFD_SERVICE_INFORMATION_MAX_LENGTH: usize = 65535;
64pub const DOT11_MAX_REQUESTED_SERVICE_INFORMATION_LENGTH: usize = 255;
65pub const DOT11_WFD_SESSION_INFO_MAX_LENGTH: usize = 144;
66STRUCT!{struct DOT11_WFD_SESSION_INFO {
67 uSessionInfoLength: USHORT,
68 ucSessionInfo: [UCHAR; DOT11_WFD_SESSION_INFO_MAX_LENGTH],
69}}
70pub type PDOT11_WFD_SESSION_INFO = *mut DOT11_WFD_SESSION_INFO;
71pub const NDIS_PACKET_TYPE_MEDIA_SPECIFIC_MASK: u32 = 0x0fff0000;
72pub const NDIS_PACKET_TYPE_802_11_DIRECTED_DATA: u32 = NDIS_PACKET_TYPE_DIRECTED;
73pub const NDIS_PACKET_TYPE_802_11_BROADCAST_DATA: u32 = NDIS_PACKET_TYPE_BROADCAST;
74pub const NDIS_PACKET_TYPE_802_11_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_MULTICAST;
75pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_ALL_MULTICAST;
76pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_DATA: u32 = NDIS_PACKET_TYPE_PROMISCUOUS;
77pub const NDIS_PACKET_TYPE_802_11_RAW_DATA: u32 = 0x00010000;
78pub const NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT: u32 = 0x00020000;
79pub const NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT: u32 = 0x00040000;
80pub const NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT: u32 = 0x00080000;
81pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT: u32 = 0x00100000;
82pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT: u32 = 0x00200000;
83pub const NDIS_PACKET_TYPE_802_11_RAW_MGMT: u32 = 0x00400000;
84pub const NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL: u32 = 0x00800000;
85pub const NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL: u32 = 0x01000000;
86pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL: u32 = 0x02000000;
87pub const NDIS_PACKET_TYPE_ALL_802_11_FILTERS: u32 = NDIS_PACKET_TYPE_DIRECTED
88 | NDIS_PACKET_TYPE_MULTICAST | NDIS_PACKET_TYPE_ALL_MULTICAST | NDIS_PACKET_TYPE_BROADCAST
89 | NDIS_PACKET_TYPE_PROMISCUOUS | NDIS_PACKET_TYPE_802_11_RAW_DATA
90 | NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT | NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
91 | NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT | NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
92 | NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT | NDIS_PACKET_TYPE_802_11_RAW_MGMT
93 | NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL | NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
94 | NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL;
95pub const DOT11_MAX_PDU_SIZE: i32 = 2346;
96pub const DOT11_MIN_PDU_SIZE: i32 = 256;
97pub const DOT11_MAX_NUM_DEFAULT_KEY: i32 = 4;
98pub const DOT11_MAX_NUM_DEFAULT_KEY_MFP: i32 = DOT11_MAX_NUM_DEFAULT_KEY + 2;
99pub const OID_DOT11_NDIS_START: u32 = 0x0D010300;
100pub const NWF_MANDATORY_OID: u32 = 0x01;
101pub const NWF_OPTIONAL_OID: u32 = 0x02;
102pub const NWF_OPERATIONAL_OID: u32 = 0x01;
103pub const NWF_STATISTICS_OID: u32 = 0x02;
104#[inline]
105pub fn NWF_DEFINE_OID(Seq: u32, o: u32, m: u32) -> u32 {
106 0x0E000000 | (o << 16) | (m << 8) | Seq
107}
108macro_rules! NWF_DEFINE_OID {
109 ($Seq:expr, $o:expr, $m:expr) => { 0x0E000000 | $o << 16 | $m << 8 | $Seq };
110}
111pub const OID_DOT11_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 0;
112pub const DOT11_HW_WEP_SUPPORTED_TX: u32 = 0x00000001;
113pub const DOT11_HW_WEP_SUPPORTED_RX: u32 = 0x00000002;
114pub const DOT11_HW_FRAGMENTATION_SUPPORTED: u32 = 0x00000004;
115pub const DOT11_HW_DEFRAGMENTATION_SUPPORTED: u32 = 0x00000008;
116pub const DOT11_HW_MSDU_AUTH_SUPPORTED_TX: u32 = 0x00000010;
117pub const DOT11_HW_MSDU_AUTH_SUPPORTED_RX: u32 = 0x00000020;
118pub const DOT11_CONF_ALGO_WEP_RC4: u32 = 0x00000001;
119pub const DOT11_CONF_ALGO_TKIP: u32 = 0x00000002;
120pub const DOT11_AUTH_ALGO_MICHAEL: u32 = 0x00000001;
121STRUCT!{struct DOT11_OFFLOAD_CAPABILITY {
122 uReserved: ULONG,
123 uFlags: ULONG,
124 uSupportedWEPAlgorithms: ULONG,
125 uNumOfReplayWindows: ULONG,
126 uMaxWEPKeyMappingLength: ULONG,
127 uSupportedAuthAlgorithms: ULONG,
128 uMaxAuthKeyMappingLength: ULONG,
129}}
130pub type PDOT11_OFFLOAD_CAPABILITY = *mut DOT11_OFFLOAD_CAPABILITY;
131pub const OID_DOT11_CURRENT_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 1;
132STRUCT!{struct DOT11_CURRENT_OFFLOAD_CAPABILITY {
133 uReserved: ULONG,
134 uFlags: ULONG,
135}}
136pub type PDOT11_CURRENT_OFFLOAD_CAPABILITY = *mut DOT11_CURRENT_OFFLOAD_CAPABILITY;
137pub const OID_DOT11_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 2;
138ENUM!{enum DOT11_OFFLOAD_TYPE {
139 dot11_offload_type_wep = 1,
140 dot11_offload_type_auth = 2,
141}}
142pub type PDOT11_OFFLOAD_TYPE = *mut DOT11_OFFLOAD_TYPE;
143STRUCT!{struct DOT11_IV48_COUNTER {
144 uIV32Counter: ULONG,
145 usIV16Counter: USHORT,
146}}
147pub type PDOT11_IV48_COUNTER = *mut DOT11_IV48_COUNTER;
148STRUCT!{struct DOT11_WEP_OFFLOAD {
149 uReserved: ULONG,
150 hOffloadContext: HANDLE,
151 hOffload: HANDLE,
152 dot11OffloadType: DOT11_OFFLOAD_TYPE,
153 dwAlgorithm: ULONG,
154 bRowIsOutbound: BOOLEAN,
155 bUseDefault: BOOLEAN,
156 uFlags: ULONG,
157 ucMacAddress: [UCHAR; 6],
158 uNumOfRWsOnPeer: ULONG,
159 uNumOfRWsOnMe: ULONG,
160 dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
161 usDot11RWBitMaps: [USHORT; 16],
162 usKeyLength: USHORT,
163 ucKey: [UCHAR; 1],
164}}
165pub type PDOT11_WEP_OFFLOAD = *mut DOT11_WEP_OFFLOAD;
166pub const OID_DOT11_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 3;
167STRUCT!{struct DOT11_WEP_UPLOAD {
168 uReserved: ULONG,
169 dot11OffloadType: DOT11_OFFLOAD_TYPE,
170 hOffload: HANDLE,
171 uNumOfRWsUsed: ULONG,
172 dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
173 usDot11RWBitMaps: [USHORT; 16],
174}}
175pub type PDOT11_WEP_UPLOAD = *mut DOT11_WEP_UPLOAD;
176pub const OID_DOT11_DEFAULT_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 4;
177ENUM!{enum DOT11_KEY_DIRECTION {
178 dot11_key_direction_both = 1,
179 dot11_key_direction_inbound = 2,
180 dot11_key_direction_outbound = 3,
181}}
182pub type PDOT11_KEY_DIRECTION = *mut DOT11_KEY_DIRECTION;
183STRUCT!{struct DOT11_DEFAULT_WEP_OFFLOAD {
184 uReserved: ULONG,
185 hOffloadContext: HANDLE,
186 hOffload: HANDLE,
187 dwIndex: ULONG,
188 dot11OffloadType: DOT11_OFFLOAD_TYPE,
189 dwAlgorithm: ULONG,
190 uFlags: ULONG,
191 dot11KeyDirection: DOT11_KEY_DIRECTION,
192 ucMacAddress: [UCHAR; 6],
193 uNumOfRWsOnMe: ULONG,
194 dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
195 usDot11RWBitMaps: [USHORT; 16],
196 usKeyLength: USHORT,
197 ucKey: [UCHAR; 1],
198}}
199pub type PDOT11_DEFAULT_WEP_OFFLOAD = *mut DOT11_DEFAULT_WEP_OFFLOAD;
200pub const OID_DOT11_DEFAULT_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 5;
201STRUCT!{struct DOT11_DEFAULT_WEP_UPLOAD {
202 uReserved: ULONG,
203 dot11OffloadType: DOT11_OFFLOAD_TYPE,
204 hOffload: HANDLE,
205 uNumOfRWsUsed: ULONG,
206 dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
207 usDot11RWBitMaps: [USHORT; 16],
208}}
209pub type PDOT11_DEFAULT_WEP_UPLOAD = *mut DOT11_DEFAULT_WEP_UPLOAD;
210pub const OID_DOT11_MPDU_MAX_LENGTH: u32 = OID_DOT11_NDIS_START + 6;
211pub const OID_DOT11_OPERATION_MODE_CAPABILITY: u32 = OID_DOT11_NDIS_START + 7;
212pub const DOT11_OPERATION_MODE_UNKNOWN: ULONG = 0x00000000;
213pub const DOT11_OPERATION_MODE_STATION: ULONG = 0x00000001;
214pub const DOT11_OPERATION_MODE_AP: ULONG = 0x00000002;
215pub const DOT11_OPERATION_MODE_EXTENSIBLE_STATION: ULONG = 0x00000004;
216pub const DOT11_OPERATION_MODE_EXTENSIBLE_AP: ULONG = 0x00000008;
217pub const DOT11_OPERATION_MODE_WFD_DEVICE: ULONG = 0x00000010;
218pub const DOT11_OPERATION_MODE_WFD_GROUP_OWNER: ULONG = 0x00000020;
219pub const DOT11_OPERATION_MODE_WFD_CLIENT: ULONG = 0x00000040;
220pub const DOT11_OPERATION_MODE_MANUFACTURING: ULONG = 0x40000000;
221pub const DOT11_OPERATION_MODE_NETWORK_MONITOR: ULONG = 0x80000000;
222STRUCT!{struct DOT11_OPERATION_MODE_CAPABILITY {
223 uReserved: ULONG,
224 uMajorVersion: ULONG,
225 uMinorVersion: ULONG,
226 uNumOfTXBuffers: ULONG,
227 uNumOfRXBuffers: ULONG,
228 uOpModeCapability: ULONG,
229}}
230pub type PDOT11_OPERATION_MODE_CAPABILITY = *mut DOT11_OPERATION_MODE_CAPABILITY;
231pub const OID_DOT11_CURRENT_OPERATION_MODE: u32 = OID_DOT11_NDIS_START + 8;
232STRUCT!{struct DOT11_CURRENT_OPERATION_MODE {
233 uReserved: ULONG,
234 uCurrentOpMode: ULONG,
235}}
236pub type PDOT11_CURRENT_OPERATION_MODE = *mut DOT11_CURRENT_OPERATION_MODE;
237pub const OID_DOT11_CURRENT_PACKET_FILTER: u32 = OID_DOT11_NDIS_START + 9;
238pub const DOT11_PACKET_TYPE_DIRECTED_CTRL: u32 = 0x00000001;
239pub const DOT11_PACKET_TYPE_DIRECTED_MGMT: u32 = 0x00000002;
240pub const DOT11_PACKET_TYPE_DIRECTED_DATA: u32 = 0x00000004;
241pub const DOT11_PACKET_TYPE_MULTICAST_CTRL: u32 = 0x00000008;
242pub const DOT11_PACKET_TYPE_MULTICAST_MGMT: u32 = 0x00000010;
243pub const DOT11_PACKET_TYPE_MULTICAST_DATA: u32 = 0x00000020;
244pub const DOT11_PACKET_TYPE_BROADCAST_CTRL: u32 = 0x00000040;
245pub const DOT11_PACKET_TYPE_BROADCAST_MGMT: u32 = 0x00000080;
246pub const DOT11_PACKET_TYPE_BROADCAST_DATA: u32 = 0x00000100;
247pub const DOT11_PACKET_TYPE_PROMISCUOUS_CTRL: u32 = 0x00000200;
248pub const DOT11_PACKET_TYPE_PROMISCUOUS_MGMT: u32 = 0x00000400;
249pub const DOT11_PACKET_TYPE_PROMISCUOUS_DATA: u32 = 0x00000800;
250pub const DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL: u32 = 0x00001000;
251pub const DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT: u32 = 0x00002000;
252pub const DOT11_PACKET_TYPE_ALL_MULTICAST_DATA: u32 = 0x00004000;
253pub const DOT11_PACKET_TYPE_RESERVED: u32 = !(DOT11_PACKET_TYPE_DIRECTED_CTRL
254 | DOT11_PACKET_TYPE_DIRECTED_MGMT | DOT11_PACKET_TYPE_DIRECTED_DATA
255 | DOT11_PACKET_TYPE_MULTICAST_CTRL | DOT11_PACKET_TYPE_MULTICAST_MGMT
256 | DOT11_PACKET_TYPE_MULTICAST_DATA | DOT11_PACKET_TYPE_BROADCAST_CTRL
257 | DOT11_PACKET_TYPE_BROADCAST_MGMT | DOT11_PACKET_TYPE_BROADCAST_DATA
258 | DOT11_PACKET_TYPE_PROMISCUOUS_CTRL | DOT11_PACKET_TYPE_PROMISCUOUS_MGMT
259 | DOT11_PACKET_TYPE_PROMISCUOUS_DATA | DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL
260 | DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT | DOT11_PACKET_TYPE_ALL_MULTICAST_DATA | 0);
261pub const OID_DOT11_ATIM_WINDOW: u32 = OID_DOT11_NDIS_START + 10;
262pub const OID_DOT11_SCAN_REQUEST: u32 = OID_DOT11_NDIS_START + 11;
263ENUM!{enum DOT11_SCAN_TYPE {
264 dot11_scan_type_active = 1,
265 dot11_scan_type_passive = 2,
266 dot11_scan_type_auto = 3,
267 dot11_scan_type_forced = 0x80000000,
268}}
269pub type PDOT11_SCAN_TYPE = *mut DOT11_SCAN_TYPE;
270STRUCT!{struct DOT11_SCAN_REQUEST {
271 dot11BSSType: DOT11_BSS_TYPE,
272 dot11BSSID: DOT11_MAC_ADDRESS,
273 dot11SSID: DOT11_SSID,
274 dot11ScanType: DOT11_SCAN_TYPE,
275 bRestrictedScan: BOOLEAN,
276 bUseRequestIE: BOOLEAN,
277 uRequestIDsOffset: ULONG,
278 uNumOfRequestIDs: ULONG,
279 uPhyTypesOffset: ULONG,
280 uNumOfPhyTypes: ULONG,
281 uIEsOffset: ULONG,
282 uIEsLength: ULONG,
283 ucBuffer: [UCHAR; 1],
284}}
285pub type PDOT11_SCAN_REQUEST = *mut DOT11_SCAN_REQUEST;
286ENUM!{enum CH_DESCRIPTION_TYPE {
287 ch_description_type_logical = 1,
288 ch_description_type_center_frequency = 2,
289 ch_description_type_phy_specific = 3,
290}}
291pub type PCH_DESCRIPTION_TYPE = *mut CH_DESCRIPTION_TYPE;
292STRUCT!{struct DOT11_PHY_TYPE_INFO {
293 dot11PhyType: DOT11_PHY_TYPE,
294 bUseParameters: BOOLEAN,
295 uProbeDelay: ULONG,
296 uMinChannelTime: ULONG,
297 uMaxChannelTime: ULONG,
298 ChDescriptionType: CH_DESCRIPTION_TYPE,
299 uChannelListSize: ULONG,
300 ucChannelListBuffer: [UCHAR; 1],
301}}
302pub type PDOT11_PHY_TYPE_INFO = *mut DOT11_PHY_TYPE_INFO;
303STRUCT!{struct DOT11_SCAN_REQUEST_V2 {
304 dot11BSSType: DOT11_BSS_TYPE,
305 dot11BSSID: DOT11_MAC_ADDRESS,
306 dot11ScanType: DOT11_SCAN_TYPE,
307 bRestrictedScan: BOOLEAN,
308 udot11SSIDsOffset: ULONG,
309 uNumOfdot11SSIDs: ULONG,
310 bUseRequestIE: BOOLEAN,
311 uRequestIDsOffset: ULONG,
312 uNumOfRequestIDs: ULONG,
313 uPhyTypeInfosOffset: ULONG,
314 uNumOfPhyTypeInfos: ULONG,
315 uIEsOffset: ULONG,
316 uIEsLength: ULONG,
317 ucBuffer: [UCHAR; 1],
318}}
319pub type PDOT11_SCAN_REQUEST_V2 = *mut DOT11_SCAN_REQUEST_V2;
320pub const OID_DOT11_CURRENT_PHY_TYPE: u32 = OID_DOT11_NDIS_START + 12;
321STRUCT!{struct DOT11_PHY_TYPE_LIST {
322 Header: NDIS_OBJECT_HEADER,
323 uNumOfEntries: ULONG,
324 uTotalNumOfEntries: ULONG,
325 dot11PhyType: [DOT11_PHY_TYPE; 1],
326}}
327pub type PDOT11_PHY_TYPE_LIST = *mut DOT11_PHY_TYPE_LIST;
328pub const DOT11_PHY_TYPE_LIST_REVISION_1: UCHAR = 1;
329pub const OID_DOT11_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 13;
330pub const DOT11_CAPABILITY_INFO_ESS: USHORT = 0x0001;
331pub const DOT11_CAPABILITY_INFO_IBSS: USHORT = 0x0002;
332pub const DOT11_CAPABILITY_INFO_CF_POLLABLE: USHORT = 0x0004;
333pub const DOT11_CAPABILITY_INFO_CF_POLL_REQ: USHORT = 0x0008;
334pub const DOT11_CAPABILITY_INFO_PRIVACY: USHORT = 0x0010;
335pub const DOT11_CAPABILITY_SHORT_PREAMBLE: USHORT = 0x0020;
336pub const DOT11_CAPABILITY_PBCC: USHORT = 0x0040;
337pub const DOT11_CAPABILITY_CHANNEL_AGILITY: USHORT = 0x0080;
338pub const DOT11_CAPABILITY_SHORT_SLOT_TIME: USHORT = 0x0400;
339pub const DOT11_CAPABILITY_DSSSOFDM: USHORT = 0x2000;
340STRUCT!{struct DOT11_BSS_DESCRIPTION {
341 uReserved: ULONG,
342 dot11BSSID: DOT11_MAC_ADDRESS,
343 dot11BSSType: DOT11_BSS_TYPE,
344 usBeaconPeriod: USHORT,
345 ullTimestamp: ULONGLONG,
346 usCapabilityInformation: USHORT,
347 uBufferLength: ULONG,
348 ucBuffer: [UCHAR; 1],
349}}
350pub type PDOT11_BSS_DESCRIPTION = *mut DOT11_BSS_DESCRIPTION;
351STRUCT!{struct DOT11_JOIN_REQUEST {
352 uJoinFailureTimeout: ULONG,
353 OperationalRateSet: DOT11_RATE_SET,
354 uChCenterFrequency: ULONG,
355 dot11BSSDescription: DOT11_BSS_DESCRIPTION,
356}}
357pub type PDOT11_JOIN_REQUEST = *mut DOT11_JOIN_REQUEST;
358pub const OID_DOT11_START_REQUEST: u32 = OID_DOT11_NDIS_START + 14;
359STRUCT!{struct DOT11_START_REQUEST {
360 uStartFailureTimeout: ULONG,
361 OperationalRateSet: DOT11_RATE_SET,
362 uChCenterFrequency: ULONG,
363 dot11BSSDescription: DOT11_BSS_DESCRIPTION,
364}}
365pub type PDOT11_START_REQUEST = *mut DOT11_START_REQUEST;
366pub const OID_DOT11_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 15;
367ENUM!{enum DOT11_UPDATE_IE_OP {
368 dot11_update_ie_op_create_replace = 1,
369 dot11_update_ie_op_delete = 2,
370}}
371pub type PDOT11_UPDATE_IE_OP = *mut DOT11_UPDATE_IE_OP;
372STRUCT!{struct DOT11_UPDATE_IE {
373 dot11UpdateIEOp: DOT11_UPDATE_IE_OP,
374 uBufferLength: ULONG,
375 ucBuffer: [UCHAR; 1],
376}}
377pub type PDOT11_UPDATE_IE = *mut DOT11_UPDATE_IE;
378pub const OID_DOT11_RESET_REQUEST: u32 = OID_DOT11_NDIS_START + 16;
379ENUM!{enum DOT11_RESET_TYPE {
380 dot11_reset_type_phy = 1,
381 dot11_reset_type_mac = 2,
382 dot11_reset_type_phy_and_mac = 3,
383}}
384pub type PDOT11_RESET_TYPE = *mut DOT11_RESET_TYPE;
385STRUCT!{struct DOT11_RESET_REQUEST {
386 dot11ResetType: DOT11_RESET_TYPE,
387 dot11MacAddress: DOT11_MAC_ADDRESS,
388 bSetDefaultMIB: BOOLEAN,
389}}
390pub type PDOT11_RESET_REQUEST = *mut DOT11_RESET_REQUEST;
391pub const OID_DOT11_NIC_POWER_STATE: u32 = OID_DOT11_NDIS_START + 17;
392pub const OID_DOT11_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 18;
393STRUCT!{struct DOT11_OPTIONAL_CAPABILITY {
394 uReserved: ULONG,
395 bDot11PCF: BOOLEAN,
396 bDot11PCFMPDUTransferToPC: BOOLEAN,
397 bStrictlyOrderedServiceClass: BOOLEAN,
398}}
399pub type PDOT11_OPTIONAL_CAPABILITY = *mut DOT11_OPTIONAL_CAPABILITY;
400pub const OID_DOT11_CURRENT_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 19;
401STRUCT!{struct DOT11_CURRENT_OPTIONAL_CAPABILITY {
402 uReserved: ULONG,
403 bDot11CFPollable: BOOLEAN,
404 bDot11PCF: BOOLEAN,
405 bDot11PCFMPDUTransferToPC: BOOLEAN,
406 bStrictlyOrderedServiceClass: BOOLEAN,
407}}
408pub type PDOT11_CURRENT_OPTIONAL_CAPABILITY = *mut DOT11_CURRENT_OPTIONAL_CAPABILITY;
409pub const OID_DOT11_STATION_ID: u32 = OID_DOT11_NDIS_START + 20;
410pub const OID_DOT11_MEDIUM_OCCUPANCY_LIMIT: u32 = OID_DOT11_NDIS_START + 21;
411pub const OID_DOT11_CF_POLLABLE: u32 = OID_DOT11_NDIS_START + 22;
412pub const OID_DOT11_CFP_PERIOD: u32 = OID_DOT11_NDIS_START + 23;
413pub const OID_DOT11_CFP_MAX_DURATION: u32 = OID_DOT11_NDIS_START + 24;
414pub const OID_DOT11_POWER_MGMT_MODE: u32 = OID_DOT11_NDIS_START + 25;
415ENUM!{enum DOT11_POWER_MODE {
416 dot11_power_mode_unknown = 0,
417 dot11_power_mode_active = 1,
418 dot11_power_mode_powersave = 2,
419}}
420pub type PDOT11_POWER_MODE = *mut DOT11_POWER_MODE;
421pub const DOT11_POWER_SAVE_LEVEL_MAX_PSP: ULONG = 1;
422pub const DOT11_POWER_SAVE_LEVEL_FAST_PSP: ULONG = 2;
423STRUCT!{struct DOT11_POWER_MGMT_MODE {
424 dot11PowerMode: DOT11_POWER_MODE,
425 uPowerSaveLevel: ULONG,
426 usListenInterval: USHORT,
427 usAID: USHORT,
428 bReceiveDTIMs: BOOLEAN,
429}}
430pub type PDOT11_POWER_MGMT_MODE = *mut DOT11_POWER_MGMT_MODE;
431pub const OID_DOT11_OPERATIONAL_RATE_SET: u32 = OID_DOT11_NDIS_START + 26;
432pub const OID_DOT11_BEACON_PERIOD: u32 = OID_DOT11_NDIS_START + 27;
433pub const OID_DOT11_DTIM_PERIOD: u32 = OID_DOT11_NDIS_START + 28;
434pub const OID_DOT11_WEP_ICV_ERROR_COUNT: u32 = OID_DOT11_NDIS_START + 29;
435pub const OID_DOT11_MAC_ADDRESS: u32 = OID_DOT11_NDIS_START + 30;
436pub const OID_DOT11_RTS_THRESHOLD: u32 = OID_DOT11_NDIS_START + 31;
437pub const OID_DOT11_SHORT_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 32;
438pub const OID_DOT11_LONG_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 33;
439pub const OID_DOT11_FRAGMENTATION_THRESHOLD: u32 = OID_DOT11_NDIS_START + 34;
440pub const OID_DOT11_MAX_TRANSMIT_MSDU_LIFETIME: u32 = OID_DOT11_NDIS_START + 35;
441pub const OID_DOT11_MAX_RECEIVE_LIFETIME: u32 = OID_DOT11_NDIS_START + 36;
442pub const OID_DOT11_COUNTERS_ENTRY: u32 = OID_DOT11_NDIS_START + 37;
443STRUCT!{struct DOT11_COUNTERS_ENTRY {
444 uTransmittedFragmentCount: ULONG,
445 uMulticastTransmittedFrameCount: ULONG,
446 uFailedCount: ULONG,
447 uRetryCount: ULONG,
448 uMultipleRetryCount: ULONG,
449 uFrameDuplicateCount: ULONG,
450 uRTSSuccessCount: ULONG,
451 uRTSFailureCount: ULONG,
452 uACKFailureCount: ULONG,
453 uReceivedFragmentCount: ULONG,
454 uMulticastReceivedFrameCount: ULONG,
455 uFCSErrorCount: ULONG,
456 uTransmittedFrameCount: ULONG,
457}}
458pub type PDOT11_COUNTERS_ENTRY = *mut DOT11_COUNTERS_ENTRY;
459pub const OID_DOT11_SUPPORTED_PHY_TYPES: u32 = OID_DOT11_NDIS_START + 38;
460STRUCT!{struct DOT11_SUPPORTED_PHY_TYPES {
461 uNumOfEntries: ULONG,
462 uTotalNumOfEntries: ULONG,
463 dot11PHYType: [DOT11_PHY_TYPE; 1],
464}}
465pub type PDOT11_SUPPORTED_PHY_TYPES = *mut DOT11_SUPPORTED_PHY_TYPES;
466pub const OID_DOT11_CURRENT_REG_DOMAIN: u32 = OID_DOT11_NDIS_START + 39;
467pub const DOT11_REG_DOMAIN_OTHER: ULONG = 0x00000000;
468pub const DOT11_REG_DOMAIN_FCC: ULONG = 0x00000010;
469pub const DOT11_REG_DOMAIN_DOC: ULONG = 0x00000020;
470pub const DOT11_REG_DOMAIN_ETSI: ULONG = 0x00000030;
471pub const DOT11_REG_DOMAIN_SPAIN: ULONG = 0x00000031;
472pub const DOT11_REG_DOMAIN_FRANCE: ULONG = 0x00000032;
473pub const DOT11_REG_DOMAIN_MKK: ULONG = 0x00000040;
474pub const OID_DOT11_TEMP_TYPE: u32 = OID_DOT11_NDIS_START + 40;
475ENUM!{enum DOT11_TEMP_TYPE {
476 dot11_temp_type_unknown = 0,
477 dot11_temp_type_1 = 1,
478 dot11_temp_type_2 = 2,
479}}
480pub type PDOT11_TEMP_TYPE = *mut DOT11_TEMP_TYPE;
481pub const OID_DOT11_CURRENT_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 41;
482pub const OID_DOT11_DIVERSITY_SUPPORT: u32 = OID_DOT11_NDIS_START + 42;
483ENUM!{enum DOT11_DIVERSITY_SUPPORT {
484 dot11_diversity_support_unknown = 0,
485 dot11_diversity_support_fixedlist = 1,
486 dot11_diversity_support_notsupported = 2,
487 dot11_diversity_support_dynamic = 3,
488}}
489pub type PDOT11_DIVERSITY_SUPPORT = *mut DOT11_DIVERSITY_SUPPORT;
490pub const OID_DOT11_CURRENT_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 43;
491pub const OID_DOT11_SUPPORTED_POWER_LEVELS: u32 = OID_DOT11_NDIS_START + 44;
492STRUCT!{struct DOT11_SUPPORTED_POWER_LEVELS {
493 uNumOfSupportedPowerLevels: ULONG,
494 uTxPowerLevelValues: [ULONG; 8],
495}}
496pub type PDOT11_SUPPORTED_POWER_LEVELS = *mut DOT11_SUPPORTED_POWER_LEVELS;
497pub const OID_DOT11_CURRENT_TX_POWER_LEVEL: u32 = OID_DOT11_NDIS_START + 45;
498pub const OID_DOT11_HOP_TIME: u32 = OID_DOT11_NDIS_START + 46;
499pub const OID_DOT11_CURRENT_CHANNEL_NUMBER: u32 = OID_DOT11_NDIS_START + 47;
500pub const OID_DOT11_MAX_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 48;
501pub const OID_DOT11_CURRENT_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 49;
502pub const OID_DOT11_CURRENT_SET: u32 = OID_DOT11_NDIS_START + 50;
503pub const OID_DOT11_CURRENT_PATTERN: u32 = OID_DOT11_NDIS_START + 51;
504pub const OID_DOT11_CURRENT_INDEX: u32 = OID_DOT11_NDIS_START + 52;
505pub const OID_DOT11_CURRENT_CHANNEL: u32 = OID_DOT11_NDIS_START + 53;
506pub const OID_DOT11_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 54;
507pub const DOT11_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
508pub const DOT11_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
509pub const DOT11_CCA_MODE_ED_and_CS: ULONG = 0x00000004;
510pub const DOT11_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
511pub const DOT11_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
512pub const OID_DOT11_CURRENT_CCA_MODE: u32 = OID_DOT11_NDIS_START + 55;
513pub const OID_DOT11_ED_THRESHOLD: u32 = OID_DOT11_NDIS_START + 56;
514pub const OID_DOT11_CCA_WATCHDOG_TIMER_MAX: u32 = OID_DOT11_NDIS_START + 57;
515pub const OID_DOT11_CCA_WATCHDOG_COUNT_MAX: u32 = OID_DOT11_NDIS_START + 58;
516pub const OID_DOT11_CCA_WATCHDOG_TIMER_MIN: u32 = OID_DOT11_NDIS_START + 59;
517pub const OID_DOT11_CCA_WATCHDOG_COUNT_MIN: u32 = OID_DOT11_NDIS_START + 60;
518pub const OID_DOT11_REG_DOMAINS_SUPPORT_VALUE: u32 = OID_DOT11_NDIS_START + 61;
519STRUCT!{struct DOT11_REG_DOMAIN_VALUE {
520 uRegDomainsSupportIndex: ULONG,
521 uRegDomainsSupportValue: ULONG,
522}}
523pub type PDOT11_REG_DOMAIN_VALUE = *mut DOT11_REG_DOMAIN_VALUE;
524STRUCT!{struct DOT11_REG_DOMAINS_SUPPORT_VALUE {
525 uNumOfEntries: ULONG,
526 uTotalNumOfEntries: ULONG,
527 dot11RegDomainValue: [DOT11_REG_DOMAIN_VALUE; 1],
528}}
529pub type PDOT11_REG_DOMAINS_SUPPORT_VALUE = *mut DOT11_REG_DOMAINS_SUPPORT_VALUE;
530pub const OID_DOT11_SUPPORTED_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 62;
531STRUCT!{struct DOT11_SUPPORTED_ANTENNA {
532 uAntennaListIndex: ULONG,
533 bSupportedAntenna: BOOLEAN,
534}}
535pub type PDOT11_SUPPORTED_ANTENNA = *mut DOT11_SUPPORTED_ANTENNA;
536STRUCT!{struct DOT11_SUPPORTED_ANTENNA_LIST {
537 uNumOfEntries: ULONG,
538 uTotalNumOfEntries: ULONG,
539 dot11SupportedAntenna: [DOT11_SUPPORTED_ANTENNA; 1],
540}}
541pub type PDOT11_SUPPORTED_ANTENNA_LIST = *mut DOT11_SUPPORTED_ANTENNA_LIST;
542pub const OID_DOT11_SUPPORTED_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 63;
543pub const OID_DOT11_DIVERSITY_SELECTION_RX: u32 = OID_DOT11_NDIS_START + 64;
544STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX {
545 uAntennaListIndex: ULONG,
546 bDiversitySelectionRX: BOOLEAN,
547}}
548pub type PDOT11_DIVERSITY_SELECTION_RX = *mut DOT11_DIVERSITY_SELECTION_RX;
549STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX_LIST {
550 uNumOfEntries: ULONG,
551 uTotalNumOfEntries: ULONG,
552 dot11DiversitySelectionRx: [DOT11_DIVERSITY_SELECTION_RX; 1],
553}}
554pub type PDOT11_DIVERSITY_SELECTION_RX_LIST = *mut DOT11_DIVERSITY_SELECTION_RX_LIST;
555pub const OID_DOT11_SUPPORTED_DATA_RATES_VALUE: u32 = OID_DOT11_NDIS_START + 65;
556pub const MAX_NUM_SUPPORTED_RATES: usize = 8;
557pub const MAX_NUM_SUPPORTED_RATES_V2: usize = 255;
558STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE {
559 ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
560 ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
561}}
562pub type PDOT11_SUPPORTED_DATA_RATES_VALUE = *mut DOT11_SUPPORTED_DATA_RATES_VALUE;
563STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE_V2 {
564 ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
565 ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
566}}
567pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V2 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
568pub type DOT11_SUPPORTED_DATA_RATES_VALUE_V1 = DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
569pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V1 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
570pub const OID_DOT11_CURRENT_FREQUENCY: u32 = OID_DOT11_NDIS_START + 66;
571pub const OID_DOT11_TI_THRESHOLD: u32 = OID_DOT11_NDIS_START + 67;
572pub const OID_DOT11_FREQUENCY_BANDS_SUPPORTED: u32 = OID_DOT11_NDIS_START + 68;
573pub const DOT11_FREQUENCY_BANDS_LOWER: u32 = 0x00000001;
574pub const DOT11_FREQUENCY_BANDS_MIDDLE: u32 = 0x00000002;
575pub const DOT11_FREQUENCY_BANDS_UPPER: u32 = 0x00000004;
576pub const OID_DOT11_SHORT_PREAMBLE_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 69;
577pub const OID_DOT11_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 70;
578pub const OID_DOT11_CHANNEL_AGILITY_PRESENT: u32 = OID_DOT11_NDIS_START + 71;
579pub const OID_DOT11_CHANNEL_AGILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 72;
580pub const OID_DOT11_HR_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 73;
581pub const DOT11_HR_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
582pub const DOT11_HR_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
583pub const DOT11_HR_CCA_MODE_CS_AND_ED: ULONG = 0x00000004;
584pub const DOT11_HR_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
585pub const DOT11_HR_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
586pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 74;
587pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 75;
588pub const OID_DOT11_COUNTRY_STRING: u32 = OID_DOT11_NDIS_START + 76;
589STRUCT!{struct DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY {
590 uMultiDomainCapabilityIndex: ULONG,
591 uFirstChannelNumber: ULONG,
592 uNumberOfChannels: ULONG,
593 lMaximumTransmitPowerLevel: LONG,
594}}
595pub type PDOT11_MULTI_DOMAIN_CAPABILITY_ENTRY = *mut DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY;
596STRUCT!{struct DOT11_MD_CAPABILITY_ENTRY_LIST {
597 uNumOfEntries: ULONG,
598 uTotalNumOfEntries: ULONG,
599 dot11MDCapabilityEntry: [DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY; 1],
600}}
601pub type PDOT11_MD_CAPABILITY_ENTRY_LIST = *mut DOT11_MD_CAPABILITY_ENTRY_LIST;
602pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY: u32 = OID_DOT11_NDIS_START + 77;
603pub const OID_DOT11_EHCC_PRIME_RADIX: u32 = OID_DOT11_NDIS_START + 78;
604pub const OID_DOT11_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX: u32 = OID_DOT11_NDIS_START + 79;
605pub const OID_DOT11_EHCC_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 80;
606pub const OID_DOT11_EHCC_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 81;
607pub const OID_DOT11_HOP_ALGORITHM_ADOPTED: u32 = OID_DOT11_NDIS_START + 82;
608ENUM!{enum DOT11_HOP_ALGO_ADOPTED {
609 dot11_hop_algo_current = 0,
610 dot11_hop_algo_hop_index = 1,
611 dot11_hop_algo_hcc = 2,
612}}
613pub type PDOT11_HOP_ALGO_ADOPTED = *mut DOT11_HOP_ALGO_ADOPTED;
614pub const OID_DOT11_RANDOM_TABLE_FLAG: u32 = OID_DOT11_NDIS_START + 83;
615pub const OID_DOT11_NUMBER_OF_HOPPING_SETS: u32 = OID_DOT11_NDIS_START + 84;
616pub const OID_DOT11_HOP_MODULUS: u32 = OID_DOT11_NDIS_START + 85;
617pub const OID_DOT11_HOP_OFFSET: u32 = OID_DOT11_NDIS_START + 86;
618pub const OID_DOT11_HOPPING_PATTERN: u32 = OID_DOT11_NDIS_START + 87;
619STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY {
620 uHoppingPatternIndex: ULONG,
621 uRandomTableFieldNumber: ULONG,
622}}
623pub type PDOT11_HOPPING_PATTERN_ENTRY = *mut DOT11_HOPPING_PATTERN_ENTRY;
624STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY_LIST {
625 uNumOfEntries: ULONG,
626 uTotalNumOfEntries: ULONG,
627 dot11HoppingPatternEntry: [DOT11_HOPPING_PATTERN_ENTRY; 1],
628}}
629pub type PDOT11_HOPPING_PATTERN_ENTRY_LIST = *mut DOT11_HOPPING_PATTERN_ENTRY_LIST;
630pub const OID_DOT11_RANDOM_TABLE_FIELD_NUMBER: u32 = OID_DOT11_NDIS_START + 88;
631pub const OID_DOT11_WPA_TSC: u32 = OID_DOT11_NDIS_START + 89;
632STRUCT!{struct DOT11_WPA_TSC {
633 uReserved: ULONG,
634 dot11OffloadType: DOT11_OFFLOAD_TYPE,
635 hOffload: HANDLE,
636 dot11IV48Counter: DOT11_IV48_COUNTER,
637}}
638pub type PDOT11_WPA_TSC = *mut DOT11_WPA_TSC;
639pub const OID_DOT11_RSSI_RANGE: u32 = OID_DOT11_NDIS_START + 90;
640STRUCT!{struct DOT11_RSSI_RANGE {
641 dot11PhyType: DOT11_PHY_TYPE,
642 uRSSIMin: ULONG,
643 uRSSIMax: ULONG,
644}}
645pub type PDOT11_RSSI_RANGE = *mut DOT11_RSSI_RANGE;
646pub const OID_DOT11_RF_USAGE: u32 = OID_DOT11_NDIS_START + 91;
647pub const OID_DOT11_NIC_SPECIFIC_EXTENSION: u32 = OID_DOT11_NDIS_START + 92;
648STRUCT!{struct DOT11_NIC_SPECIFIC_EXTENSION {
649 uBufferLength: ULONG,
650 uTotalBufferLength: ULONG,
651 ucBuffer: [UCHAR; 1],
652}}
653pub type PDOT11_NIC_SPECIFIC_EXTENSION = *mut DOT11_NIC_SPECIFIC_EXTENSION;
654pub const OID_DOT11_AP_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 93;
655STRUCT!{struct DOT11_AP_JOIN_REQUEST {
656 uJoinFailureTimeout: ULONG,
657 OperationalRateSet: DOT11_RATE_SET,
658 uChCenterFrequency: ULONG,
659 dot11BSSDescription: DOT11_BSS_DESCRIPTION,
660}}
661pub type PDOT11_AP_JOIN_REQUEST = *mut DOT11_AP_JOIN_REQUEST;
662pub const OID_DOT11_ERP_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 94;
663pub const OID_DOT11_ERP_PBCC_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 95;
664pub const OID_DOT11_DSSS_OFDM_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 96;
665pub const OID_DOT11_DSSS_OFDM_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 97;
666pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 98;
667pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 99;
668pub const OID_DOT11_MAX_MAC_ADDRESS_STATES: u32 = OID_DOT11_NDIS_START + 100;
669pub const OID_DOT11_RECV_SENSITIVITY_LIST: u32 = OID_DOT11_NDIS_START + 101;
670STRUCT!{struct DOT11_RECV_SENSITIVITY {
671 ucDataRate: UCHAR,
672 lRSSIMin: LONG,
673 lRSSIMax: LONG,
674}}
675pub type PDOT11_RECV_SENSITIVITY = *mut DOT11_RECV_SENSITIVITY;
676UNION!{union DOT11_RECV_SENSITIVITY_LIST_u {
677 [u32; 1],
678 dot11PhyType dot11PhyType_mut: DOT11_PHY_TYPE,
679 uPhyId uPhyId_mut: ULONG,
680}}
681STRUCT!{struct DOT11_RECV_SENSITIVITY_LIST {
682 u: DOT11_RECV_SENSITIVITY_LIST_u,
683 uNumOfEntries: ULONG,
684 uTotalNumOfEntries: ULONG,
685 dot11RecvSensitivity: [DOT11_RECV_SENSITIVITY; 1],
686}}
687pub type PDOT11_RECV_SENSITIVITY_LIST = *mut DOT11_RECV_SENSITIVITY_LIST;
688pub const OID_DOT11_WME_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 102;
689pub const OID_DOT11_WME_ENABLED: u32 = OID_DOT11_NDIS_START + 103;
690pub const OID_DOT11_WME_AC_PARAMETERS: u32 = OID_DOT11_NDIS_START + 104;
691ENUM!{enum DOT11_AC_PARAM {
692 dot11_AC_param_BE = 0,
693 dot11_AC_param_BK = 1,
694 dot11_AC_param_VI = 2,
695 dot11_AC_param_VO = 3,
696 dot11_AC_param_max = 4,
697}}
698pub type PDOT11_AC_PARAM = *mut DOT11_AC_PARAM;
699STRUCT!{struct DOT11_WME_AC_PARAMETERS {
700 ucAccessCategoryIndex: UCHAR,
701 ucAIFSN: UCHAR,
702 ucECWmin: UCHAR,
703 ucECWmax: UCHAR,
704 usTXOPLimit: USHORT,
705}}
706pub type PDOT11_WME_AC_PARAMETERS = *mut DOT11_WME_AC_PARAMETERS;
707STRUCT!{struct DOT11_WME_AC_PARAMETERS_LIST {
708 uNumOfEntries: ULONG,
709 uTotalNumOfEntries: ULONG,
710 dot11WMEACParameters: [DOT11_WME_AC_PARAMETERS; 1],
711}}
712pub type PDOT11_WME_AC_PARAMETERS_LIST = *mut DOT11_WME_AC_PARAMETERS_LIST;
713pub const OID_DOT11_WME_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 105;
714STRUCT!{struct DOT11_WME_UPDATE_IE {
715 uParamElemMinBeaconIntervals: ULONG,
716 uWMEInfoElemOffset: ULONG,
717 uWMEInfoElemLength: ULONG,
718 uWMEParamElemOffset: ULONG,
719 uWMEParamElemLength: ULONG,
720 ucBuffer: [UCHAR; 1],
721}}
722pub type PDOT11_WME_UPDATE_IE = *mut DOT11_WME_UPDATE_IE;
723pub const OID_DOT11_QOS_TX_QUEUES_SUPPORTED: u32 = OID_DOT11_NDIS_START + 106;
724pub const OID_DOT11_QOS_TX_DURATION: u32 = OID_DOT11_NDIS_START + 107;
725STRUCT!{struct DOT11_QOS_TX_DURATION {
726 uNominalMSDUSize: ULONG,
727 uMinPHYRate: ULONG,
728 uDuration: ULONG,
729}}
730pub type PDOT11_QOS_TX_DURATION = *mut DOT11_QOS_TX_DURATION;
731pub const OID_DOT11_QOS_TX_MEDIUM_TIME: u32 = OID_DOT11_NDIS_START + 108;
732STRUCT!{struct DOT11_QOS_TX_MEDIUM_TIME {
733 dot11PeerAddress: DOT11_MAC_ADDRESS,
734 ucQoSPriority: UCHAR,
735 uMediumTimeAdmited: ULONG,
736}}
737pub type PDOT11_QOS_TX_MEDIUM_TIME = *mut DOT11_QOS_TX_MEDIUM_TIME;
738pub const OID_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST: u32 = OID_DOT11_NDIS_START + 109;
739STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY {
740 uCenterFrequency: ULONG,
741}}
742pub type PDOT11_SUPPORTED_OFDM_FREQUENCY = *mut DOT11_SUPPORTED_OFDM_FREQUENCY;
743STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY_LIST {
744 uNumOfEntries: ULONG,
745 uTotalNumOfEntries: ULONG,
746 dot11SupportedOFDMFrequency: [DOT11_SUPPORTED_OFDM_FREQUENCY; 1],
747}}
748pub type PDOT11_SUPPORTED_OFDM_FREQUENCY_LIST = *mut DOT11_SUPPORTED_OFDM_FREQUENCY_LIST;
749pub const OID_DOT11_SUPPORTED_DSSS_CHANNEL_LIST: u32 = OID_DOT11_NDIS_START + 110;
750STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL {
751 uChannel: ULONG,
752}}
753pub type PDOT11_SUPPORTED_DSSS_CHANNEL = *mut DOT11_SUPPORTED_DSSS_CHANNEL;
754STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL_LIST {
755 uNumOfEntries: ULONG,
756 uTotalNumOfEntries: ULONG,
757 dot11SupportedDSSSChannel: [DOT11_SUPPORTED_DSSS_CHANNEL; 1],
758}}
759pub type PDOT11_SUPPORTED_DSSS_CHANNEL_LIST = *mut DOT11_SUPPORTED_DSSS_CHANNEL_LIST;
760STRUCT!{struct DOT11_BYTE_ARRAY {
761 Header: NDIS_OBJECT_HEADER,
762 uNumOfBytes: ULONG,
763 uTotalNumOfBytes: ULONG,
764 ucBuffer: [UCHAR; 1],
765}}
766pub type PDOT11_BYTE_ARRAY = *mut DOT11_BYTE_ARRAY;
767pub const OID_DOT11_AUTO_CONFIG_ENABLED: u32 =
768 NWF_DEFINE_OID!(120, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
769pub const DOT11_PHY_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000001;
770pub const DOT11_MAC_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000002;
771pub const OID_DOT11_ENUM_BSS_LIST: u32 =
772 NWF_DEFINE_OID!(121, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
773pub const DOT11_BSS_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
774STRUCT!{struct DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS {
775 uHopPattern: ULONG,
776 uHopSet: ULONG,
777 uDwellTime: ULONG,
778}}
779UNION!{union DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO {
780 [u32; 3],
781 uChCenterFrequency uChCenterFrequency_mut: ULONG,
782 FHSS FHSS_mut: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS,
783}}
784pub type PDOT11_BSS_ENTRY_PHY_SPECIFIC_INFO = *mut DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO;
785STRUCT!{struct DOT11_BSS_ENTRY {
786 uPhyId: ULONG,
787 PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO,
788 dot11BSSID: DOT11_MAC_ADDRESS,
789 dot11BSSType: DOT11_BSS_TYPE,
790 lRSSI: LONG,
791 uLinkQuality: ULONG,
792 bInRegDomain: BOOLEAN,
793 usBeaconPeriod: USHORT,
794 ullTimestamp: ULONGLONG,
795 ullHostTimestamp: ULONGLONG,
796 usCapabilityInformation: USHORT,
797 uBufferLength: ULONG,
798 ucBuffer: [UCHAR; 1],
799}}
800pub type PDOT11_BSS_ENTRY = *mut DOT11_BSS_ENTRY;
801pub const OID_DOT11_FLUSH_BSS_LIST: u32 =
802 NWF_DEFINE_OID!(122, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
803pub const OID_DOT11_POWER_MGMT_REQUEST: u32 =
804 NWF_DEFINE_OID!(123, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
805pub const DOT11_POWER_SAVING_NO_POWER_SAVING: ULONG = 0;
806pub const DOT11_POWER_SAVING_FAST_PSP: ULONG = 8;
807pub const DOT11_POWER_SAVING_MAX_PSP: ULONG = 16;
808pub const DOT11_POWER_SAVING_MAXIMUM_LEVEL: ULONG = 24;
809pub const OID_DOT11_DESIRED_SSID_LIST: u32 =
810 NWF_DEFINE_OID!(124, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
811STRUCT!{struct DOT11_SSID_LIST {
812 Header: NDIS_OBJECT_HEADER,
813 uNumOfEntries: ULONG,
814 uTotalNumOfEntries: ULONG,
815 SSIDs: [DOT11_SSID; 1],
816}}
817pub type PDOT11_SSID_LIST = *mut DOT11_SSID_LIST;
818pub const DOT11_SSID_LIST_REVISION_1: UCHAR = 1;
819pub const OID_DOT11_EXCLUDED_MAC_ADDRESS_LIST: u32 =
820 NWF_DEFINE_OID!(125, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
821STRUCT!{struct DOT11_MAC_ADDRESS_LIST {
822 Header: NDIS_OBJECT_HEADER,
823 uNumOfEntries: ULONG,
824 uTotalNumOfEntries: ULONG,
825 MacAddrs: [DOT11_MAC_ADDRESS; 1],
826}}
827pub type PDOT11_MAC_ADDRESS_LIST = *mut DOT11_MAC_ADDRESS_LIST;
828pub const DOT11_MAC_ADDRESS_LIST_REVISION_1: UCHAR = 1;
829pub const OID_DOT11_DESIRED_BSSID_LIST: u32 =
830 NWF_DEFINE_OID!(126, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
831pub const OID_DOT11_DESIRED_BSS_TYPE: u32 =
832 NWF_DEFINE_OID!(127, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
833pub const OID_DOT11_PMKID_LIST: u32 = NWF_DEFINE_OID!(128, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
834pub type DOT11_PMKID_VALUE = [UCHAR; 16];
835STRUCT!{struct DOT11_PMKID_ENTRY {
836 BSSID: DOT11_MAC_ADDRESS,
837 PMKID: DOT11_PMKID_VALUE,
838 uFlags: ULONG,
839}}
840pub type PDOT11_PMKID_ENTRY = *mut DOT11_PMKID_ENTRY;
841STRUCT!{struct DOT11_PMKID_LIST {
842 Header: NDIS_OBJECT_HEADER,
843 uNumOfEntries: ULONG,
844 uTotalNumOfEntries: ULONG,
845 PMKIDs: [DOT11_PMKID_ENTRY; 1],
846}}
847pub type PDOT11_PMKID_LIST = *mut DOT11_PMKID_LIST;
848pub const DOT11_PMKID_LIST_REVISION_1: UCHAR = 1;
849pub const OID_DOT11_CONNECT_REQUEST: u32 =
850 NWF_DEFINE_OID!(129, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
851pub const OID_DOT11_EXCLUDE_UNENCRYPTED: u32 =
852 NWF_DEFINE_OID!(130, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
853pub const OID_DOT11_STATISTICS: u32 =
854 NWF_DEFINE_OID!(131, NWF_STATISTICS_OID, NWF_MANDATORY_OID);
855pub const DOT11_STATISTICS_UNKNOWN: ULONGLONG = -1i64 as u64;
856STRUCT!{struct DOT11_PHY_FRAME_STATISTICS {
857 ullTransmittedFrameCount: ULONGLONG,
858 ullMulticastTransmittedFrameCount: ULONGLONG,
859 ullFailedCount: ULONGLONG,
860 ullRetryCount: ULONGLONG,
861 ullMultipleRetryCount: ULONGLONG,
862 ullMaxTXLifetimeExceededCount: ULONGLONG,
863 ullTransmittedFragmentCount: ULONGLONG,
864 ullRTSSuccessCount: ULONGLONG,
865 ullRTSFailureCount: ULONGLONG,
866 ullACKFailureCount: ULONGLONG,
867 ullReceivedFrameCount: ULONGLONG,
868 ullMulticastReceivedFrameCount: ULONGLONG,
869 ullPromiscuousReceivedFrameCount: ULONGLONG,
870 ullMaxRXLifetimeExceededCount: ULONGLONG,
871 ullFrameDuplicateCount: ULONGLONG,
872 ullReceivedFragmentCount: ULONGLONG,
873 ullPromiscuousReceivedFragmentCount: ULONGLONG,
874 ullFCSErrorCount: ULONGLONG,
875}}
876pub type PDOT11_PHY_FRAME_STATISTICS = *mut DOT11_PHY_FRAME_STATISTICS;
877STRUCT!{struct DOT11_MAC_FRAME_STATISTICS {
878 ullTransmittedFrameCount: ULONGLONG,
879 ullReceivedFrameCount: ULONGLONG,
880 ullTransmittedFailureFrameCount: ULONGLONG,
881 ullReceivedFailureFrameCount: ULONGLONG,
882 ullWEPExcludedCount: ULONGLONG,
883 ullTKIPLocalMICFailures: ULONGLONG,
884 ullTKIPReplays: ULONGLONG,
885 ullTKIPICVErrorCount: ULONGLONG,
886 ullCCMPReplays: ULONGLONG,
887 ullCCMPDecryptErrors: ULONGLONG,
888 ullWEPUndecryptableCount: ULONGLONG,
889 ullWEPICVErrorCount: ULONGLONG,
890 ullDecryptSuccessCount: ULONGLONG,
891 ullDecryptFailureCount: ULONGLONG,
892}}
893pub type PDOT11_MAC_FRAME_STATISTICS = *mut DOT11_MAC_FRAME_STATISTICS;
894STRUCT!{struct DOT11_STATISTICS {
895 Header: NDIS_OBJECT_HEADER,
896 ullFourWayHandshakeFailures: ULONGLONG,
897 ullTKIPCounterMeasuresInvoked: ULONGLONG,
898 ullReserved: ULONGLONG,
899 MacUcastCounters: DOT11_MAC_FRAME_STATISTICS,
900 MacMcastCounters: DOT11_MAC_FRAME_STATISTICS,
901 PhyCounters: [DOT11_PHY_FRAME_STATISTICS; 1],
902}}
903pub type PDOT11_STATISTICS = *mut DOT11_STATISTICS;
904pub const DOT11_STATISTICS_REVISION_1: UCHAR = 1;
905pub const OID_DOT11_PRIVACY_EXEMPTION_LIST: u32 =
906 NWF_DEFINE_OID!(132, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
907STRUCT!{struct DOT11_PRIVACY_EXEMPTION {
908 usEtherType: USHORT,
909 usExemptionActionType: USHORT,
910 usExemptionPacketType: USHORT,
911}}
912pub type PDOT11_PRIVACY_EXEMPTION = *mut DOT11_PRIVACY_EXEMPTION;
913pub const DOT11_EXEMPT_NO_EXEMPTION: USHORT = 0;
914pub const DOT11_EXEMPT_ALWAYS: USHORT = 1;
915pub const DOT11_EXEMPT_ON_KEY_MAPPING_KEY_UNAVAILABLE: USHORT = 2;
916pub const DOT11_EXEMPT_UNICAST: USHORT = 1;
917pub const DOT11_EXEMPT_MULTICAST: USHORT = 2;
918pub const DOT11_EXEMPT_BOTH: USHORT = 3;
919STRUCT!{struct DOT11_PRIVACY_EXEMPTION_LIST {
920 Header: NDIS_OBJECT_HEADER,
921 uNumOfEntries: ULONG,
922 uTotalNumOfEntries: ULONG,
923 PrivacyExemptionEntries: [DOT11_PRIVACY_EXEMPTION; 1],
924}}
925pub type PDOT11_PRIVACY_EXEMPTION_LIST = *mut DOT11_PRIVACY_EXEMPTION_LIST;
926pub const DOT11_PRIVACY_EXEMPTION_LIST_REVISION_1: UCHAR = 1;
927pub const OID_DOT11_ENABLED_AUTHENTICATION_ALGORITHM: u32 =
928 NWF_DEFINE_OID!(133, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
929STRUCT!{struct DOT11_AUTH_ALGORITHM_LIST {
930 Header: NDIS_OBJECT_HEADER,
931 uNumOfEntries: ULONG,
932 uTotalNumOfEntries: ULONG,
933 AlgorithmIds: [DOT11_AUTH_ALGORITHM; 1],
934}}
935pub type PDOT11_AUTH_ALGORITHM_LIST = *mut DOT11_AUTH_ALGORITHM_LIST;
936pub const DOT11_AUTH_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
937pub const OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR: u32 =
938 NWF_DEFINE_OID!(134, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
939STRUCT!{struct DOT11_AUTH_CIPHER_PAIR_LIST {
940 Header: NDIS_OBJECT_HEADER,
941 uNumOfEntries: ULONG,
942 uTotalNumOfEntries: ULONG,
943 AuthCipherPairs: [DOT11_AUTH_CIPHER_PAIR; 1],
944}}
945pub type PDOT11_AUTH_CIPHER_PAIR_LIST = *mut DOT11_AUTH_CIPHER_PAIR_LIST;
946pub const DOT11_AUTH_CIPHER_PAIR_LIST_REVISION_1: UCHAR = 1;
947pub const OID_DOT11_ENABLED_UNICAST_CIPHER_ALGORITHM: u32 =
948 NWF_DEFINE_OID!(135, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
949STRUCT!{struct DOT11_CIPHER_ALGORITHM_LIST {
950 Header: NDIS_OBJECT_HEADER,
951 uNumOfEntries: ULONG,
952 uTotalNumOfEntries: ULONG,
953 AlgorithmIds: [DOT11_CIPHER_ALGORITHM; 1],
954}}
955pub type PDOT11_CIPHER_ALGORITHM_LIST = *mut DOT11_CIPHER_ALGORITHM_LIST;
956pub const DOT11_CIPHER_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
957pub const OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR: u32 =
958 NWF_DEFINE_OID!(136, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
959pub const OID_DOT11_ENABLED_MULTICAST_CIPHER_ALGORITHM: u32 =
960 NWF_DEFINE_OID!(137, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
961pub const OID_DOT11_CIPHER_DEFAULT_KEY_ID: u32 =
962 NWF_DEFINE_OID!(138, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
963pub const OID_DOT11_CIPHER_DEFAULT_KEY: u32 =
964 NWF_DEFINE_OID!(139, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
965STRUCT!{struct DOT11_CIPHER_DEFAULT_KEY_VALUE {
966 Header: NDIS_OBJECT_HEADER,
967 uKeyIndex: ULONG,
968 AlgorithmId: DOT11_CIPHER_ALGORITHM,
969 MacAddr: DOT11_MAC_ADDRESS,
970 bDelete: BOOLEAN,
971 bStatic: BOOLEAN,
972 usKeyLength: USHORT,
973 ucKey: [UCHAR; 1],
974}}
975pub type PDOT11_CIPHER_DEFAULT_KEY_VALUE = *mut DOT11_CIPHER_DEFAULT_KEY_VALUE;
976pub const DOT11_CIPHER_DEFAULT_KEY_VALUE_REVISION_1: UCHAR = 1;
977STRUCT!{struct DOT11_KEY_ALGO_TKIP_MIC {
978 ucIV48Counter: [UCHAR; 6],
979 ulTKIPKeyLength: ULONG,
980 ulMICKeyLength: ULONG,
981 ucTKIPMICKeys: [UCHAR; 1],
982}}
983pub type PDOT11_KEY_ALGO_TKIP_MIC = *mut DOT11_KEY_ALGO_TKIP_MIC;
984STRUCT!{struct DOT11_KEY_ALGO_CCMP {
985 ucIV48Counter: [UCHAR; 6],
986 ulCCMPKeyLength: ULONG,
987 ucCCMPKey: [UCHAR; 1],
988}}
989pub type PDOT11_KEY_ALGO_CCMP = *mut DOT11_KEY_ALGO_CCMP;
990STRUCT!{struct DOT11_KEY_ALGO_GCMP {
991 ucIV48Counter: [UCHAR; 6],
992 ulGCMPKeyLength: ULONG,
993 ucGCMPKey: [UCHAR; 1],
994}}
995pub type PDOT11_KEY_ALGO_GCMP = *mut DOT11_KEY_ALGO_GCMP;
996STRUCT!{struct DOT11_KEY_ALGO_BIP {
997 ucIPN: [UCHAR; 6],
998 ulBIPKeyLength: ULONG,
999 ucBIPKey: [UCHAR; 1],
1000}}
1001pub type PDOT11_KEY_ALGO_BIP = *mut DOT11_KEY_ALGO_BIP;
1002pub const OID_DOT11_CIPHER_KEY_MAPPING_KEY: u32 =
1003 NWF_DEFINE_OID!(140, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1004ENUM!{enum DOT11_DIRECTION {
1005 DOT11_DIR_INBOUND = 1,
1006 DOT11_DIR_OUTBOUND = 2,
1007 DOT11_DIR_BOTH = 3,
1008}}
1009pub type PDOT11_DIRECTION = *mut DOT11_DIRECTION;
1010pub const DOT11_CIPHER_KEY_MAPPING_KEY_VALUE_BYTE_ARRAY_REVISION_1: UCHAR = 1;
1011STRUCT!{struct DOT11_CIPHER_KEY_MAPPING_KEY_VALUE {
1012 PeerMacAddr: DOT11_MAC_ADDRESS,
1013 AlgorithmId: DOT11_CIPHER_ALGORITHM,
1014 Direction: DOT11_DIRECTION,
1015 bDelete: BOOLEAN,
1016 bStatic: BOOLEAN,
1017 usKeyLength: USHORT,
1018 ucKey: [UCHAR; 1],
1019}}
1020pub type PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE = *mut DOT11_CIPHER_KEY_MAPPING_KEY_VALUE;
1021pub const OID_DOT11_ENUM_ASSOCIATION_INFO: u32 =
1022 NWF_DEFINE_OID!(141, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1023ENUM!{enum DOT11_ASSOCIATION_STATE {
1024 dot11_assoc_state_zero = 0,
1025 dot11_assoc_state_unauth_unassoc = 1,
1026 dot11_assoc_state_auth_unassoc = 2,
1027 dot11_assoc_state_auth_assoc = 3,
1028}}
1029pub type PDOT11_ASSOCIATION_STATE = *mut DOT11_ASSOCIATION_STATE;
1030STRUCT!{struct DOT11_ASSOCIATION_INFO_EX {
1031 PeerMacAddress: DOT11_MAC_ADDRESS,
1032 BSSID: DOT11_MAC_ADDRESS,
1033 usCapabilityInformation: USHORT,
1034 usListenInterval: USHORT,
1035 ucPeerSupportedRates: [UCHAR; 255],
1036 usAssociationID: USHORT,
1037 dot11AssociationState: DOT11_ASSOCIATION_STATE,
1038 dot11PowerMode: DOT11_POWER_MODE,
1039 liAssociationUpTime: LARGE_INTEGER,
1040 ullNumOfTxPacketSuccesses: ULONGLONG,
1041 ullNumOfTxPacketFailures: ULONGLONG,
1042 ullNumOfRxPacketSuccesses: ULONGLONG,
1043 ullNumOfRxPacketFailures: ULONGLONG,
1044}}
1045pub type PDOT11_ASSOCIATION_INFO_EX = *mut DOT11_ASSOCIATION_INFO_EX;
1046STRUCT!{struct DOT11_ASSOCIATION_INFO_LIST {
1047 Header: NDIS_OBJECT_HEADER,
1048 uNumOfEntries: ULONG,
1049 uTotalNumOfEntries: ULONG,
1050 dot11AssocInfo: [DOT11_ASSOCIATION_INFO_EX; 1],
1051}}
1052pub type PDOT11_ASSOCIATION_INFO_LIST = *mut DOT11_ASSOCIATION_INFO_LIST;
1053pub const DOT11_ASSOCIATION_INFO_LIST_REVISION_1: UCHAR = 1;
1054pub const OID_DOT11_DISCONNECT_REQUEST: u32 =
1055 NWF_DEFINE_OID!(142, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1056pub const OID_DOT11_UNICAST_USE_GROUP_ENABLED: u32 =
1057 NWF_DEFINE_OID!(143, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1058pub const OID_DOT11_HARDWARE_PHY_STATE: u32 =
1059 NWF_DEFINE_OID!(144, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1060pub const OID_DOT11_DESIRED_PHY_LIST: u32 =
1061 NWF_DEFINE_OID!(145, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1062STRUCT!{struct DOT11_PHY_ID_LIST {
1063 Header: NDIS_OBJECT_HEADER,
1064 uNumOfEntries: ULONG,
1065 uTotalNumOfEntries: ULONG,
1066 dot11PhyId: [ULONG; 1],
1067}}
1068pub type PDOT11_PHY_ID_LIST = *mut DOT11_PHY_ID_LIST;
1069pub const DOT11_PHY_ID_LIST_REVISION_1: UCHAR = 1;
1070pub const DOT11_PHY_ID_ANY: ULONG = 0xffffffff;
1071pub const OID_DOT11_CURRENT_PHY_ID: u32 =
1072 NWF_DEFINE_OID!(146, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1073pub const OID_DOT11_MEDIA_STREAMING_ENABLED: u32 =
1074 NWF_DEFINE_OID!(147, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1075pub const OID_DOT11_UNREACHABLE_DETECTION_THRESHOLD: u32 =
1076 NWF_DEFINE_OID!(148, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1077pub const OID_DOT11_ACTIVE_PHY_LIST: u32 =
1078 NWF_DEFINE_OID!(149, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1079pub const OID_DOT11_EXTSTA_CAPABILITY: u32 =
1080 NWF_DEFINE_OID!(150, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1081STRUCT!{struct DOT11_EXTSTA_CAPABILITY {
1082 Header: NDIS_OBJECT_HEADER,
1083 uScanSSIDListSize: ULONG,
1084 uDesiredBSSIDListSize: ULONG,
1085 uDesiredSSIDListSize: ULONG,
1086 uExcludedMacAddressListSize: ULONG,
1087 uPrivacyExemptionListSize: ULONG,
1088 uKeyMappingTableSize: ULONG,
1089 uDefaultKeyTableSize: ULONG,
1090 uWEPKeyValueMaxLength: ULONG,
1091 uPMKIDCacheSize: ULONG,
1092 uMaxNumPerSTADefaultKeyTables: ULONG,
1093}}
1094pub type PDOT11_EXTSTA_CAPABILITY = *mut DOT11_EXTSTA_CAPABILITY;
1095pub const DOT11_EXTSTA_CAPABILITY_REVISION_1: UCHAR = 1;
1096pub const OID_DOT11_DATA_RATE_MAPPING_TABLE: u32 =
1097 NWF_DEFINE_OID!(151, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1098STRUCT!{struct DOT11_DATA_RATE_MAPPING_ENTRY {
1099 ucDataRateIndex: UCHAR,
1100 ucDataRateFlag: UCHAR,
1101 usDataRateValue: USHORT,
1102}}
1103pub type PDOT11_DATA_RATE_MAPPING_ENTRY = *mut DOT11_DATA_RATE_MAPPING_ENTRY;
1104STRUCT!{struct DOT11_DATA_RATE_MAPPING_TABLE {
1105 Header: NDIS_OBJECT_HEADER,
1106 uDataRateMappingLength: ULONG,
1107 DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; DOT11_RATE_SET_MAX_LENGTH],
1108}}
1109pub type PDOT11_DATA_RATE_MAPPING_TABLE = *mut DOT11_DATA_RATE_MAPPING_TABLE;
1110pub const DOT11_DATA_RATE_MAPPING_TABLE_REVISION_1: UCHAR = 1;
1111pub const DOT11_DATA_RATE_NON_STANDARD: UCHAR = 0x01;
1112pub const DOT11_DATA_RATE_INDEX_MASK: UCHAR = 0x7f;
1113pub const OID_DOT11_SUPPORTED_COUNTRY_OR_REGION_STRING: u32 =
1114 NWF_DEFINE_OID!(152, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1115STRUCT!{struct DOT11_COUNTRY_OR_REGION_STRING_LIST {
1116 Header: NDIS_OBJECT_HEADER,
1117 uNumOfEntries: ULONG,
1118 uTotalNumOfEntries: ULONG,
1119 CountryOrRegionStrings: [DOT11_COUNTRY_OR_REGION_STRING; 1],
1120}}
1121pub type PDOT11_COUNTRY_OR_REGION_STRING_LIST = *mut DOT11_COUNTRY_OR_REGION_STRING_LIST;
1122pub const DOT11_COUNTRY_OR_REGION_STRING_LIST_REVISION_1: UCHAR = 1;
1123pub const OID_DOT11_DESIRED_COUNTRY_OR_REGION_STRING: u32 =
1124 NWF_DEFINE_OID!(153, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1125pub const OID_DOT11_PORT_STATE_NOTIFICATION: u32 =
1126 NWF_DEFINE_OID!(154, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
1127STRUCT!{struct DOT11_PORT_STATE_NOTIFICATION {
1128 Header: NDIS_OBJECT_HEADER,
1129 PeerMac: DOT11_MAC_ADDRESS,
1130 bOpen: BOOLEAN,
1131}}
1132pub type PDOT11_PORT_STATE_NOTIFICATION = *mut DOT11_PORT_STATE_NOTIFICATION;
1133pub const DOT11_PORT_STATE_NOTIFICATION_REVISION_1: UCHAR = 1;
1134pub const OID_DOT11_IBSS_PARAMS: u32 =
1135 NWF_DEFINE_OID!(155, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1136STRUCT!{struct DOT11_IBSS_PARAMS {
1137 Header: NDIS_OBJECT_HEADER,
1138 bJoinOnly: BOOLEAN,
1139 uIEsOffset: ULONG,
1140 uIEsLength: ULONG,
1141}}
1142pub type PDOT11_IBSS_PARAMS = *mut DOT11_IBSS_PARAMS;
1143pub const DOT11_IBSS_PARAMS_REVISION_1: UCHAR = 1;
1144pub const OID_DOT11_QOS_PARAMS: u32 = NWF_DEFINE_OID!(156, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
1145STRUCT!{struct DOT11_QOS_PARAMS {
1146 Header: NDIS_OBJECT_HEADER,
1147 ucEnabledQoSProtocolFlags: UCHAR,
1148}}
1149pub type PDOT11_QOS_PARAMS = *mut DOT11_QOS_PARAMS;
1150pub const DOT11_QOS_PARAMS_REVISION_1: UCHAR = 1;
1151pub const DOT11_QOS_PROTOCOL_FLAG_WMM: UCHAR = 0x01;
1152pub const DOT11_QOS_PROTOCOL_FLAG_11E: UCHAR = 0x02;
1153pub const OID_DOT11_SAFE_MODE_ENABLED: u32 =
1154 NWF_DEFINE_OID!(157, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1155pub const OID_DOT11_HIDDEN_NETWORK_ENABLED: u32 =
1156 NWF_DEFINE_OID!(158, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1157pub const OID_DOT11_ASSOCIATION_PARAMS: u32 =
1158 NWF_DEFINE_OID!(159, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1159STRUCT!{struct DOT11_ASSOCIATION_PARAMS {
1160 Header: NDIS_OBJECT_HEADER,
1161 BSSID: DOT11_MAC_ADDRESS,
1162 uAssocRequestIEsOffset: ULONG,
1163 uAssocRequestIEsLength: ULONG,
1164}}
1165pub type PDOT11_ASSOCIATION_PARAMS = *mut DOT11_ASSOCIATION_PARAMS;
1166pub const DOT11_ASSOCIATION_PARAMS_REVISION_1: UCHAR = 1;
1167pub const OID_DOT11_SAFE_MODE_HT_ENABLED: u32 =
1168 NWF_DEFINE_OID!(160, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1169pub const DOT11_MAX_NUM_OF_FRAGMENTS: USHORT = 16;
1170pub const DOT11_PRIORITY_CONTENTION: i32 = 0;
1171pub const DOT11_PRIORITY_CONTENTION_FREE: i32 = 1;
1172pub const DOT11_SERVICE_CLASS_REORDERABLE_MULTICAST: i32 = 0;
1173pub const DOT11_SERVICE_CLASS_STRICTLY_ORDERED: i32 = 1;
1174pub const DOT11_FLAGS_80211B_SHORT_PREAMBLE: u32 = 0x00000001;
1175pub const DOT11_FLAGS_80211B_PBCC: u32 = 0x00000002;
1176pub const DOT11_FLAGS_80211B_CHANNEL_AGILITY: u32 = 0x00000004;
1177pub const DOT11_FLAGS_PS_ON: u32 = 0x00000008;
1178pub const DOT11_FLAGS_80211G_DSSS_OFDM: u32 = 0x00000010;
1179pub const DOT11_FLAGS_80211G_USE_PROTECTION: u32 = 0x00000020;
1180pub const DOT11_FLAGS_80211G_NON_ERP_PRESENT: u32 = 0x00000040;
1181pub const DOT11_FLAGS_80211G_BARKER_PREAMBLE_MODE: u32 = 0x00000080;
1182pub const DOT11_WME_PACKET: u32 = 0x00000100;
1183STRUCT!{struct DOT11_FRAGMENT_DESCRIPTOR {
1184 uOffset: ULONG,
1185 uLength: ULONG,
1186}}
1187pub type PDOT11_FRAGMENT_DESCRIPTOR = *mut DOT11_FRAGMENT_DESCRIPTOR;
1188STRUCT!{struct DOT11_PER_MSDU_COUNTERS {
1189 uTransmittedFragmentCount: ULONG,
1190 uRetryCount: ULONG,
1191 uRTSSuccessCount: ULONG,
1192 uRTSFailureCount: ULONG,
1193 uACKFailureCount: ULONG,
1194}}
1195pub type PDOT11_PER_MSDU_COUNTERS = *mut DOT11_PER_MSDU_COUNTERS;
1196STRUCT!{struct DOT11_HRDSSS_PHY_ATTRIBUTES {
1197 bShortPreambleOptionImplemented: BOOLEAN,
1198 bPBCCOptionImplemented: BOOLEAN,
1199 bChannelAgilityPresent: BOOLEAN,
1200 uHRCCAModeSupported: ULONG,
1201}}
1202pub type PDOT11_HRDSSS_PHY_ATTRIBUTES = *mut DOT11_HRDSSS_PHY_ATTRIBUTES;
1203STRUCT!{struct DOT11_OFDM_PHY_ATTRIBUTES {
1204 uFrequencyBandsSupported: ULONG,
1205}}
1206pub type PDOT11_OFDM_PHY_ATTRIBUTES = *mut DOT11_OFDM_PHY_ATTRIBUTES;
1207STRUCT!{struct DOT11_ERP_PHY_ATTRIBUTES {
1208 HRDSSSAttributes: DOT11_HRDSSS_PHY_ATTRIBUTES,
1209 bERPPBCCOptionImplemented: BOOLEAN,
1210 bDSSSOFDMOptionImplemented: BOOLEAN,
1211 bShortSlotTimeOptionImplemented: BOOLEAN,
1212}}
1213pub type PDOT11_ERP_PHY_ATTRIBUTES = *mut DOT11_ERP_PHY_ATTRIBUTES;
1214pub const DOT11_PHY_ATTRIBUTES_REVISION_1: UCHAR = 1;
1215UNION!{union DOT11_PHY_ATTRIBUTES_u {
1216 [u32; 3],
1217 HRDSSSAttributes HRDSSSAttributes_mut: DOT11_HRDSSS_PHY_ATTRIBUTES,
1218 OFDMAttributes OFDMAttributes_mut: DOT11_OFDM_PHY_ATTRIBUTES,
1219 ERPAttributes ERPAttributes_mut: DOT11_ERP_PHY_ATTRIBUTES,
1220}}
1221STRUCT!{struct DOT11_PHY_ATTRIBUTES {
1222 Header: NDIS_OBJECT_HEADER,
1223 PhyType: DOT11_PHY_TYPE,
1224 bHardwarePhyState: BOOLEAN,
1225 bSoftwarePhyState: BOOLEAN,
1226 bCFPollable: BOOLEAN,
1227 uMPDUMaxLength: ULONG,
1228 TempType: DOT11_TEMP_TYPE,
1229 DiversitySupport: DOT11_DIVERSITY_SUPPORT,
1230 u: DOT11_PHY_ATTRIBUTES_u,
1231 uNumberSupportedPowerLevels: ULONG,
1232 TxPowerLevels: [ULONG; 8],
1233 uNumDataRateMappingEntries: ULONG,
1234 DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; DOT11_RATE_SET_MAX_LENGTH],
1235 SupportedDataRatesValue: DOT11_SUPPORTED_DATA_RATES_VALUE_V2,
1236}}
1237pub type PDOT11_PHY_ATTRIBUTES = *mut DOT11_PHY_ATTRIBUTES;
1238pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_OID_SUPPORTED: UINT8 = 0x1;
1239pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_CERTIFIED: UINT8 = 0x2;
1240pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_RESERVED: UINT8 = 0xC;
1241pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_1: UCHAR = 1;
1242pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_2: UCHAR = 2;
1243pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_3: UCHAR = 3;
1244pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_4: UCHAR = 4;
1245STRUCT!{struct DOT11_EXTSTA_ATTRIBUTES {
1246 Header: NDIS_OBJECT_HEADER,
1247 uScanSSIDListSize: ULONG,
1248 uDesiredBSSIDListSize: ULONG,
1249 uDesiredSSIDListSize: ULONG,
1250 uExcludedMacAddressListSize: ULONG,
1251 uPrivacyExemptionListSize: ULONG,
1252 uKeyMappingTableSize: ULONG,
1253 uDefaultKeyTableSize: ULONG,
1254 uWEPKeyValueMaxLength: ULONG,
1255 uPMKIDCacheSize: ULONG,
1256 uMaxNumPerSTADefaultKeyTables: ULONG,
1257 bStrictlyOrderedServiceClassImplemented: BOOLEAN,
1258 ucSupportedQoSProtocolFlags: UCHAR,
1259 bSafeModeImplemented: BOOLEAN,
1260 uNumSupportedCountryOrRegionStrings: ULONG,
1261 pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
1262 uInfraNumSupportedUcastAlgoPairs: ULONG,
1263 pInfraSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1264 uInfraNumSupportedMcastAlgoPairs: ULONG,
1265 pInfraSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1266 uAdhocNumSupportedUcastAlgoPairs: ULONG,
1267 pAdhocSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1268 uAdhocNumSupportedMcastAlgoPairs: ULONG,
1269 pAdhocSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1270 bAutoPowerSaveMode: BOOLEAN,
1271 uMaxNetworkOffloadListSize: ULONG,
1272 bMFPCapable: BOOLEAN,
1273 uInfraNumSupportedMcastMgmtAlgoPairs: ULONG,
1274 pInfraSupportedMcastMgmtAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1275 bNeighborReportSupported: BOOLEAN,
1276 bAPChannelReportSupported: BOOLEAN,
1277 bActionFramesSupported: BOOLEAN,
1278 bANQPQueryOffloadSupported: BOOLEAN,
1279 bHESSIDConnectionSupported: BOOLEAN,
1280}}
1281pub type PDOT11_EXTSTA_ATTRIBUTES = *mut DOT11_EXTSTA_ATTRIBUTES;
1282STRUCT!{struct DOT11_RECV_EXTENSION_INFO {
1283 uVersion: ULONG,
1284 pvReserved: PVOID,
1285 dot11PhyType: DOT11_PHY_TYPE,
1286 uChCenterFrequency: ULONG,
1287 lRSSI: LONG,
1288 lRSSIMin: LONG,
1289 lRSSIMax: LONG,
1290 uRSSI: ULONG,
1291 ucPriority: UCHAR,
1292 ucDataRate: UCHAR,
1293 ucPeerMacAddress: [UCHAR; 6],
1294 dwExtendedStatus: ULONG,
1295 hWEPOffloadContext: HANDLE,
1296 hAuthOffloadContext: HANDLE,
1297 usWEPAppliedMask: USHORT,
1298 usWPAMSDUPriority: USHORT,
1299 dot11LowestIV48Counter: DOT11_IV48_COUNTER,
1300 usDot11LeftRWBitMap: USHORT,
1301 dot11HighestIV48Counter: DOT11_IV48_COUNTER,
1302 usDot11RightRWBitMap: USHORT,
1303 usNumberOfMPDUsReceived: USHORT,
1304 usNumberOfFragments: USHORT,
1305 pNdisPackets: [PVOID; 1],
1306}}
1307pub type PDOT11_RECV_EXTENSION_INFO = *mut DOT11_RECV_EXTENSION_INFO;
1308STRUCT!{struct DOT11_RECV_EXTENSION_INFO_V2 {
1309 uVersion: ULONG,
1310 pvReserved: PVOID,
1311 dot11PhyType: DOT11_PHY_TYPE,
1312 uChCenterFrequency: ULONG,
1313 lRSSI: LONG,
1314 uRSSI: ULONG,
1315 ucPriority: UCHAR,
1316 ucDataRate: UCHAR,
1317 ucPeerMacAddress: [UCHAR; 6],
1318 dwExtendedStatus: ULONG,
1319 hWEPOffloadContext: HANDLE,
1320 hAuthOffloadContext: HANDLE,
1321 usWEPAppliedMask: USHORT,
1322 usWPAMSDUPriority: USHORT,
1323 dot11LowestIV48Counter: DOT11_IV48_COUNTER,
1324 usDot11LeftRWBitMap: USHORT,
1325 dot11HighestIV48Counter: DOT11_IV48_COUNTER,
1326 usDot11RightRWBitMap: USHORT,
1327 usNumberOfMPDUsReceived: USHORT,
1328 usNumberOfFragments: USHORT,
1329 pNdisPackets: [PVOID; 1],
1330}}
1331pub type PDOT11_RECV_EXTENSION_INFO_V2 = *mut DOT11_RECV_EXTENSION_INFO_V2;
1332pub const DOT11_STATUS_SUCCESS: NDIS_STATUS = 0x00000001;
1333pub const DOT11_STATUS_RETRY_LIMIT_EXCEEDED: NDIS_STATUS = 0x00000002;
1334pub const DOT11_STATUS_UNSUPPORTED_PRIORITY: NDIS_STATUS = 0x00000004;
1335pub const DOT11_STATUS_UNSUPPORTED_SERVICE_CLASS: NDIS_STATUS = 0x00000008;
1336pub const DOT11_STATUS_UNAVAILABLE_PRIORITY: NDIS_STATUS = 0x00000010;
1337pub const DOT11_STATUS_UNAVAILABLE_SERVICE_CLASS: NDIS_STATUS = 0x00000020;
1338pub const DOT11_STATUS_XMIT_MSDU_TIMER_EXPIRED: NDIS_STATUS = 0x00000040;
1339pub const DOT11_STATUS_UNAVAILABLE_BSS: NDIS_STATUS = 0x00000080;
1340pub const DOT11_STATUS_EXCESSIVE_DATA_LENGTH: NDIS_STATUS = 0x00000100;
1341pub const DOT11_STATUS_ENCRYPTION_FAILED: NDIS_STATUS = 0x00000200;
1342pub const DOT11_STATUS_WEP_KEY_UNAVAILABLE: NDIS_STATUS = 0x00000400;
1343pub const DOT11_STATUS_ICV_VERIFIED: NDIS_STATUS = 0x00000800;
1344pub const DOT11_STATUS_PACKET_REASSEMBLED: NDIS_STATUS = 0x00001000;
1345pub const DOT11_STATUS_PACKET_NOT_REASSEMBLED: NDIS_STATUS = 0x00002000;
1346pub const DOT11_STATUS_GENERATE_AUTH_FAILED: NDIS_STATUS = 0x00004000;
1347pub const DOT11_STATUS_AUTH_NOT_VERIFIED: NDIS_STATUS = 0x00008000;
1348pub const DOT11_STATUS_AUTH_VERIFIED: NDIS_STATUS = 0x00010000;
1349pub const DOT11_STATUS_AUTH_FAILED: NDIS_STATUS = 0x00020000;
1350pub const DOT11_STATUS_PS_LIFETIME_EXPIRED: NDIS_STATUS = 0x00040000;
1351STRUCT!{struct DOT11_STATUS_INDICATION {
1352 uStatusType: ULONG,
1353 ndisStatus: NDIS_STATUS,
1354}}
1355pub type PDOT11_STATUS_INDICATION = *mut DOT11_STATUS_INDICATION;
1356pub const DOT11_STATUS_RESET_CONFIRM: ULONG = 4;
1357pub const DOT11_STATUS_SCAN_CONFIRM: ULONG = 1;
1358pub const DOT11_STATUS_JOIN_CONFIRM: ULONG = 2;
1359pub const DOT11_STATUS_START_CONFIRM: ULONG = 3;
1360pub const DOT11_STATUS_AP_JOIN_CONFIRM: ULONG = 5;
1361pub const DOT11_STATUS_MPDU_MAX_LENGTH_CHANGED: ULONG = 6;
1362STRUCT!{struct DOT11_MPDU_MAX_LENGTH_INDICATION {
1363 Header: NDIS_OBJECT_HEADER,
1364 uPhyId: ULONG,
1365 uMPDUMaxLength: ULONG,
1366}}
1367pub type PDOT11_MPDU_MAX_LENGTH_INDICATION = *mut DOT11_MPDU_MAX_LENGTH_INDICATION;
1368pub const DOT11_MPDU_MAX_LENGTH_INDICATION_REVISION_1: UCHAR = 1;
1369STRUCT!{struct DOT11_ASSOCIATION_START_PARAMETERS {
1370 Header: NDIS_OBJECT_HEADER,
1371 MacAddr: DOT11_MAC_ADDRESS,
1372 SSID: DOT11_SSID,
1373 uIHVDataOffset: ULONG,
1374 uIHVDataSize: ULONG,
1375}}
1376pub type PDOT11_ASSOCIATION_START_PARAMETERS = *mut DOT11_ASSOCIATION_START_PARAMETERS;
1377pub const DOT11_ASSOCIATION_START_PARAMETERS_REVISION_1: UCHAR = 1;
1378pub const DOT11_ENCAP_RFC_1042: USHORT = 1;
1379pub const DOT11_ENCAP_802_1H: USHORT = 2;
1380STRUCT!{struct DOT11_ENCAP_ENTRY {
1381 usEtherType: USHORT,
1382 usEncapType: USHORT,
1383}}
1384pub type PDOT11_ENCAP_ENTRY = *mut DOT11_ENCAP_ENTRY;
1385ENUM!{enum DOT11_DS_INFO {
1386 DOT11_DS_CHANGED = 0,
1387 DOT11_DS_UNCHANGED = 1,
1388 DOT11_DS_UNKNOWN = 2,
1389}}
1390pub type PDOT11_DS_INFO = *mut DOT11_DS_INFO;
1391pub type DOT11_ASSOC_STATUS = ULONG;
1392pub const DOT11_ASSOC_STATUS_SUCCESS: DOT11_ASSOC_STATUS = 0;
1393pub const DOT11_ASSOC_STATUS_FAILURE: DOT11_ASSOC_STATUS = 0x00000001;
1394pub const DOT11_ASSOC_STATUS_UNREACHABLE: DOT11_ASSOC_STATUS = 0x00000002;
1395pub const DOT11_ASSOC_STATUS_RADIO_OFF: DOT11_ASSOC_STATUS = 0x00000003;
1396pub const DOT11_ASSOC_STATUS_PHY_DISABLED: DOT11_ASSOC_STATUS = 0x00000004;
1397pub const DOT11_ASSOC_STATUS_CANCELLED: DOT11_ASSOC_STATUS = 0x00000005;
1398pub const DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS = 0x00000006;
1399pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS: DOT11_ASSOC_STATUS = 0x00000007;
1400pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_ROAMING: DOT11_ASSOC_STATUS = 0x00000008;
1401pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_RESET: DOT11_ASSOC_STATUS = 0x00000009;
1402pub const DOT11_ASSOC_STATUS_SYSTEM_ERROR: DOT11_ASSOC_STATUS = 0x0000000a;
1403pub const DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND: DOT11_ASSOC_STATUS = 0x0000000b;
1404pub const DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST: DOT11_ASSOC_STATUS = 0x0000000c;
1405pub const DOT11_ASSOC_STATUS_ROAMING_ADHOC: DOT11_ASSOC_STATUS = 0x0000000d;
1406pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS = 0x00010000;
1407pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_START: DOT11_ASSOC_STATUS =
1408 DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
1409pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_END: DOT11_ASSOC_STATUS = 0x0001ffff;
1410pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS = 0x00020000;
1411pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_START: DOT11_ASSOC_STATUS =
1412 DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
1413pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_END: DOT11_ASSOC_STATUS = 0x0002ffff;
1414pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE: DOT11_ASSOC_STATUS = 0x00030000;
1415pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_START: DOT11_ASSOC_STATUS =
1416 DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE;
1417pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_END: DOT11_ASSOC_STATUS = 0x0003ffff;
1418pub const DOT11_ASSOC_STATUS_REASON_CODE_MASK: DOT11_ASSOC_STATUS = 0xffff;
1419pub const DOT11_ASSOC_STATUS_IHV_START: DOT11_ASSOC_STATUS = 0x80000000;
1420pub const DOT11_ASSOC_STATUS_IHV_END: DOT11_ASSOC_STATUS = 0xffffffff;
1421STRUCT!{struct DOT11_ASSOCIATION_COMPLETION_PARAMETERS {
1422 Header: NDIS_OBJECT_HEADER,
1423 MacAddr: DOT11_MAC_ADDRESS,
1424 uStatus: DOT11_ASSOC_STATUS,
1425 bReAssocReq: BOOLEAN,
1426 bReAssocResp: BOOLEAN,
1427 uAssocReqOffset: ULONG,
1428 uAssocReqSize: ULONG,
1429 uAssocRespOffset: ULONG,
1430 uAssocRespSize: ULONG,
1431 uBeaconOffset: ULONG,
1432 uBeaconSize: ULONG,
1433 uIHVDataOffset: ULONG,
1434 uIHVDataSize: ULONG,
1435 AuthAlgo: DOT11_AUTH_ALGORITHM,
1436 UnicastCipher: DOT11_CIPHER_ALGORITHM,
1437 MulticastCipher: DOT11_CIPHER_ALGORITHM,
1438 uActivePhyListOffset: ULONG,
1439 uActivePhyListSize: ULONG,
1440 bFourAddressSupported: BOOLEAN,
1441 bPortAuthorized: BOOLEAN,
1442 ucActiveQoSProtocol: UCHAR,
1443 DSInfo: DOT11_DS_INFO,
1444 uEncapTableOffset: ULONG,
1445 uEncapTableSize: ULONG,
1446 MulticastMgmtCipher: DOT11_CIPHER_ALGORITHM,
1447 uAssocComebackTime: ULONG,
1448}}
1449pub type PDOT11_ASSOCIATION_COMPLETION_PARAMETERS = *mut DOT11_ASSOCIATION_COMPLETION_PARAMETERS;
1450pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1451pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_2: UCHAR = 2;
1452STRUCT!{struct DOT11_CONNECTION_START_PARAMETERS {
1453 Header: NDIS_OBJECT_HEADER,
1454 BSSType: DOT11_BSS_TYPE,
1455 AdhocBSSID: DOT11_MAC_ADDRESS,
1456 AdhocSSID: DOT11_SSID,
1457}}
1458pub type PDOT11_CONNECTION_START_PARAMETERS = *mut DOT11_CONNECTION_START_PARAMETERS;
1459pub const DOT11_CONNECTION_START_PARAMETERS_REVISION_1: UCHAR = 1;
1460pub const DOT11_CONNECTION_STATUS_SUCCESS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_SUCCESS;
1461pub const DOT11_CONNECTION_STATUS_FAILURE: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_FAILURE;
1462pub const DOT11_CONNECTION_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS =
1463 DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED;
1464pub const DOT11_CONNECTION_STATUS_PHY_POWER_DOWN: DOT11_ASSOC_STATUS =
1465 DOT11_ASSOC_STATUS_RADIO_OFF;
1466pub const DOT11_CONNECTION_STATUS_CANCELLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_CANCELLED;
1467pub const DOT11_CONNECTION_STATUS_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
1468pub const DOT11_CONNECTION_STATUS_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
1469STRUCT!{struct DOT11_CONNECTION_COMPLETION_PARAMETERS {
1470 Header: NDIS_OBJECT_HEADER,
1471 uStatus: DOT11_ASSOC_STATUS,
1472}}
1473pub type PDOT11_CONNECTION_COMPLETION_PARAMETERS = *mut DOT11_CONNECTION_COMPLETION_PARAMETERS;
1474pub const DOT11_CONNECTION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1475pub const DOT11_ROAMING_REASON_BETTER_AP_FOUND: DOT11_ASSOC_STATUS =
1476 DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND;
1477pub const DOT11_ROAMING_REASON_ASSOCIATION_LOST: DOT11_ASSOC_STATUS =
1478 DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST;
1479pub const DOT11_ROAMING_REASON_ADHOC: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_ROAMING_ADHOC;
1480pub const DOT11_ROAMING_REASON_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
1481pub const DOT11_ROAMING_REASON_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
1482STRUCT!{struct DOT11_ROAMING_START_PARAMETERS {
1483 Header: NDIS_OBJECT_HEADER,
1484 AdhocBSSID: DOT11_MAC_ADDRESS,
1485 AdhocSSID: DOT11_SSID,
1486 uRoamingReason: DOT11_ASSOC_STATUS,
1487}}
1488pub type PDOT11_ROAMING_START_PARAMETERS = *mut DOT11_ROAMING_START_PARAMETERS;
1489pub const DOT11_ROAMING_START_PARAMETERS_REVISION_1: UCHAR = 1;
1490STRUCT!{struct DOT11_ROAMING_COMPLETION_PARAMETERS {
1491 Header: NDIS_OBJECT_HEADER,
1492 uStatus: DOT11_ASSOC_STATUS,
1493}}
1494pub type PDOT11_ROAMING_COMPLETION_PARAMETERS = *mut DOT11_ROAMING_COMPLETION_PARAMETERS;
1495pub const DOT11_ROAMING_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1496pub const DOT11_DISASSOC_REASON_OS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS;
1497pub const DOT11_DISASSOC_REASON_PEER_UNREACHABLE: DOT11_ASSOC_STATUS =
1498 DOT11_ASSOC_STATUS_UNREACHABLE;
1499pub const DOT11_DISASSOC_REASON_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS =
1500 DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
1501pub const DOT11_DISASSOC_REASON_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS =
1502 DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
1503pub const DOT11_DISASSOC_REASON_RADIO_OFF: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_RADIO_OFF;
1504pub const DOT11_DISASSOC_REASON_PHY_DISABLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_PHY_DISABLED;
1505pub const DOT11_DISASSOC_REASON_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
1506pub const DOT11_DISASSOC_REASON_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
1507STRUCT!{struct DOT11_DISASSOCIATION_PARAMETERS {
1508 Header: NDIS_OBJECT_HEADER,
1509 MacAddr: DOT11_MAC_ADDRESS,
1510 uReason: DOT11_ASSOC_STATUS,
1511 uIHVDataOffset: ULONG,
1512 uIHVDataSize: ULONG,
1513}}
1514pub type PDOT11_DISASSOCIATION_PARAMETERS = *mut DOT11_DISASSOCIATION_PARAMETERS;
1515pub const DOT11_DISASSOCIATION_PARAMETERS_REVISION_1: UCHAR = 1;
1516STRUCT!{struct DOT11_TKIPMIC_FAILURE_PARAMETERS {
1517 Header: NDIS_OBJECT_HEADER,
1518 bDefaultKeyFailure: BOOLEAN,
1519 uKeyIndex: ULONG,
1520 PeerMac: DOT11_MAC_ADDRESS,
1521}}
1522pub type PDOT11_TKIPMIC_FAILURE_PARAMETERS = *mut DOT11_TKIPMIC_FAILURE_PARAMETERS;
1523pub const DOT11_TKIPMIC_FAILURE_PARAMETERS_REVISION_1: UCHAR = 1;
1524STRUCT!{struct DOT11_PMKID_CANDIDATE_LIST_PARAMETERS {
1525 Header: NDIS_OBJECT_HEADER,
1526 uCandidateListSize: ULONG,
1527 uCandidateListOffset: ULONG,
1528}}
1529pub type PDOT11_PMKID_CANDIDATE_LIST_PARAMETERS = *mut DOT11_PMKID_CANDIDATE_LIST_PARAMETERS;
1530pub const DOT11_PMKID_CANDIDATE_LIST_PARAMETERS_REVISION_1: UCHAR = 1;
1531STRUCT!{struct DOT11_BSSID_CANDIDATE {
1532 BSSID: DOT11_MAC_ADDRESS,
1533 uFlags: ULONG,
1534}}
1535pub type PDOT11_BSSID_CANDIDATE = *mut DOT11_BSSID_CANDIDATE;
1536pub const DOT11_PMKID_CANDIDATE_PREAUTH_ENABLED: ULONG = 0x00000001;
1537STRUCT!{struct DOT11_PHY_STATE_PARAMETERS {
1538 Header: NDIS_OBJECT_HEADER,
1539 uPhyId: ULONG,
1540 bHardwarePhyState: BOOLEAN,
1541 bSoftwarePhyState: BOOLEAN,
1542}}
1543pub type PDOT11_PHY_STATE_PARAMETERS = *mut DOT11_PHY_STATE_PARAMETERS;
1544pub const DOT11_PHY_STATE_PARAMETERS_REVISION_1: UCHAR = 1;
1545STRUCT!{struct DOT11_LINK_QUALITY_ENTRY {
1546 PeerMacAddr: DOT11_MAC_ADDRESS,
1547 ucLinkQuality: UCHAR,
1548}}
1549pub type PDOT11_LINK_QUALITY_ENTRY = *mut DOT11_LINK_QUALITY_ENTRY;
1550STRUCT!{struct DOT11_LINK_QUALITY_PARAMETERS {
1551 Header: NDIS_OBJECT_HEADER,
1552 uLinkQualityListSize: ULONG,
1553 uLinkQualityListOffset: ULONG,
1554}}
1555pub type PDOT11_LINK_QUALITY_PARAMETERS = *mut DOT11_LINK_QUALITY_PARAMETERS;
1556pub const DOT11_LINK_QUALITY_PARAMETERS_REVISION_1: UCHAR = 1;
1557STRUCT!{struct DOT11_EXTSTA_SEND_CONTEXT {
1558 Header: NDIS_OBJECT_HEADER,
1559 usExemptionActionType: USHORT,
1560 uPhyId: ULONG,
1561 uDelayedSleepValue: ULONG,
1562 pvMediaSpecificInfo: PVOID,
1563 uSendFlags: ULONG,
1564}}
1565pub type PDOT11_EXTSTA_SEND_CONTEXT = *mut DOT11_EXTSTA_SEND_CONTEXT;
1566pub type DOT11_EXTAP_SEND_CONTEXT = DOT11_EXTSTA_SEND_CONTEXT;
1567pub type PDOT11_EXTAP_SEND_CONTEXT = *mut DOT11_EXTSTA_SEND_CONTEXT;
1568pub const DOT11_EXTSTA_SEND_CONTEXT_REVISION_1: UCHAR = 1;
1569pub const DOT11_RECV_FLAG_RAW_PACKET: ULONG = 0x00000001;
1570pub const DOT11_RECV_FLAG_RAW_PACKET_FCS_FAILURE: ULONG = 0x00000002;
1571pub const DOT11_RECV_FLAG_RAW_PACKET_TIMESTAMP: ULONG = 0x00000004;
1572pub const DOT11_EXTSTA_RECV_CONTEXT_REVISION_1: UCHAR = 1;
1573STRUCT!{struct DOT11_EXTSTA_RECV_CONTEXT {
1574 Header: NDIS_OBJECT_HEADER,
1575 uReceiveFlags: ULONG,
1576 uPhyId: ULONG,
1577 uChCenterFrequency: ULONG,
1578 usNumberOfMPDUsReceived: USHORT,
1579 lRSSI: LONG,
1580 ucDataRate: UCHAR,
1581 uSizeMediaSpecificInfo: ULONG,
1582 pvMediaSpecificInfo: PVOID,
1583 ullTimestamp: ULONGLONG,
1584}}
1585pub type PDOT11_EXTSTA_RECV_CONTEXT = *mut DOT11_EXTSTA_RECV_CONTEXT;
1586pub type DOT11_EXTAP_RECV_CONTEXT = DOT11_EXTSTA_RECV_CONTEXT;
1587pub type PDOT11_EXTAP_RECV_CONTEXT = *mut DOT11_EXTSTA_RECV_CONTEXT;
1588pub const OID_DOT11_PRIVATE_OIDS_START: u32 = OID_DOT11_NDIS_START + 1024;
1589pub const OID_DOT11_CURRENT_ADDRESS: u32 = OID_DOT11_PRIVATE_OIDS_START + 2;
1590pub const OID_DOT11_PERMANENT_ADDRESS: u32 = OID_DOT11_PRIVATE_OIDS_START + 3;
1591pub const OID_DOT11_MULTICAST_LIST: u32 = OID_DOT11_PRIVATE_OIDS_START + 4;
1592pub const OID_DOT11_MAXIMUM_LIST_SIZE: u32 = OID_DOT11_PRIVATE_OIDS_START + 5;
1593macro_rules! DEFINE_NWF_GUID {
1594 ($name:ident, $ord:expr) => {
1595 DEFINE_GUID!{
1596 $name, 0x6cb9a43e + $ord, 0xc45f, 0x4039, 0x9f, 0xe6, 0xd0, 0x8c, 0xb0, 0x57, 0x18,
1597 0x4c
1598 }
1599 };
1600}
1601DEFINE_NWF_GUID!{GUID_NWF_OFFLOAD_CAPABILITY, 0}
1602DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OFFLOAD_CAPABILITY, 1}
1603DEFINE_NWF_GUID!{GUID_NWF_WEP_OFFLOAD, 2}
1604DEFINE_NWF_GUID!{GUID_NWF_WEP_UPLOAD, 3}
1605DEFINE_NWF_GUID!{GUID_NWF_DEFAULT_WEP_OFFLOAD, 4}
1606DEFINE_NWF_GUID!{GUID_NWF_DEFAULT_WEP_UPLOAD, 5}
1607DEFINE_NWF_GUID!{GUID_NWF_MPDU_MAX_LENGTH, 6}
1608DEFINE_NWF_GUID!{GUID_NWF_OPERATION_MODE_CAPABILITY, 7}
1609DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OPERATION_MODE, 8}
1610DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PACKET_FILTER, 9}
1611DEFINE_NWF_GUID!{GUID_NWF_ATIM_WINDOW, 10}
1612DEFINE_NWF_GUID!{GUID_NWF_SCAN_REQUEST, 11}
1613DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PHY_TYPE, 12}
1614DEFINE_NWF_GUID!{GUID_NWF_JOIN_REQUEST, 13}
1615DEFINE_NWF_GUID!{GUID_NWF_START_REQUEST, 14}
1616DEFINE_NWF_GUID!{GUID_NWF_UPDATE_IE, 15}
1617DEFINE_NWF_GUID!{GUID_NWF_RESET_REQUEST, 16}
1618DEFINE_NWF_GUID!{GUID_NWF_NIC_POWER_STATE, 17}
1619DEFINE_NWF_GUID!{GUID_NWF_OPTIONAL_CAPABILITY, 18}
1620DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OPTIONAL_CAPABILITY, 19}
1621DEFINE_NWF_GUID!{GUID_NWF_STATION_ID, 20}
1622DEFINE_NWF_GUID!{GUID_NWF_MEDIUM_OCCUPANCY_LIMIT, 21}
1623DEFINE_NWF_GUID!{GUID_NWF_CF_POLLABLE, 22}
1624DEFINE_NWF_GUID!{GUID_NWF_CFP_PERIOD, 23}
1625DEFINE_NWF_GUID!{GUID_NWF_CFP_MAX_DURATION, 24}
1626DEFINE_NWF_GUID!{GUID_NWF_POWER_MGMT_MODE, 25}
1627DEFINE_NWF_GUID!{GUID_NWF_OPERATIONAL_RATE_SET, 26}
1628DEFINE_NWF_GUID!{GUID_NWF_BEACON_PERIOD, 27}
1629DEFINE_NWF_GUID!{GUID_NWF_DTIM_PERIOD, 28}
1630DEFINE_NWF_GUID!{GUID_NWF_WEP_ICV_ERROR_COUNT, 29}
1631DEFINE_NWF_GUID!{GUID_NWF_MAC_ADDRESS, 30}
1632DEFINE_NWF_GUID!{GUID_NWF_RTS_THRESHOLD, 31}
1633DEFINE_NWF_GUID!{GUID_NWF_SHORT_RETRY_LIMIT, 32}
1634DEFINE_NWF_GUID!{GUID_NWF_LONG_RETRY_LIMIT, 33}
1635DEFINE_NWF_GUID!{GUID_NWF_FRAGMENTATION_THRESHOLD, 34}
1636DEFINE_NWF_GUID!{GUID_NWF_MAX_TRANSMIT_MSDU_LIFETIME, 35}
1637DEFINE_NWF_GUID!{GUID_NWF_MAX_RECEIVE_LIFETIME, 36}
1638DEFINE_NWF_GUID!{GUID_NWF_COUNTERS_ENTRY, 37}
1639DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_PHY_TYPES, 38}
1640DEFINE_NWF_GUID!{GUID_NWF_CURRENT_REG_DOMAIN, 39}
1641DEFINE_NWF_GUID!{GUID_NWF_TEMP_TYPE, 40}
1642DEFINE_NWF_GUID!{GUID_NWF_CURRENT_TX_ANTENNA, 41}
1643DEFINE_NWF_GUID!{GUID_NWF_DIVERSITY_SUPPORT, 42}
1644DEFINE_NWF_GUID!{GUID_NWF_CURRENT_RX_ANTENNA, 43}
1645DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_POWER_LEVELS, 44}
1646DEFINE_NWF_GUID!{GUID_NWF_CURRENT_TX_POWER_LEVEL, 45}
1647DEFINE_NWF_GUID!{GUID_NWF_HOP_TIME, 46}
1648DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CHANNEL_NUMBER, 47}
1649DEFINE_NWF_GUID!{GUID_NWF_MAX_DWELL_TIME, 48}
1650DEFINE_NWF_GUID!{GUID_NWF_CURRENT_DWELL_TIME, 49}
1651DEFINE_NWF_GUID!{GUID_NWF_CURRENT_SET, 50}
1652DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PATTERN, 51}
1653DEFINE_NWF_GUID!{GUID_NWF_CURRENT_INDEX, 52}
1654DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CHANNEL, 53}
1655DEFINE_NWF_GUID!{GUID_NWF_CCA_MODE_SUPPORTED, 54}
1656DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CCA_MODE, 55}
1657DEFINE_NWF_GUID!{GUID_NWF_ED_THRESHOLD, 56}
1658DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_TIMER_MAX, 57}
1659DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_COUNT_MAX, 58}
1660DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_TIMER_MIN, 59}
1661DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_COUNT_MIN, 60}
1662DEFINE_NWF_GUID!{GUID_NWF_REG_DOMAINS_SUPPORT_VALUE, 61}
1663DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_TX_ANTENNA, 62}
1664DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_RX_ANTENNA, 63}
1665DEFINE_NWF_GUID!{GUID_NWF_DIVERSITY_SELECTION_RX, 64}
1666DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_DATA_RATES_VALUE, 65}
1667DEFINE_NWF_GUID!{GUID_NWF_CURRENT_FREQUENCY, 66}
1668DEFINE_NWF_GUID!{GUID_NWF_TI_THRESHOLD, 67}
1669DEFINE_NWF_GUID!{GUID_NWF_FREQUENCY_BANDS_SUPPORTED, 68}
1670DEFINE_NWF_GUID!{GUID_NWF_SHORT_PREAMBLE_OPTION_IMPLEMENTED, 69}
1671DEFINE_NWF_GUID!{GUID_NWF_PBCC_OPTION_IMPLEMENTED, 70}
1672DEFINE_NWF_GUID!{GUID_NWF_CHANNEL_AGILITY_PRESENT, 71}
1673DEFINE_NWF_GUID!{GUID_NWF_CHANNEL_AGILITY_ENABLED, 72}
1674DEFINE_NWF_GUID!{GUID_NWF_HR_CCA_MODE_SUPPORTED, 73}
1675DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED, 74}
1676DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY_ENABLED, 75}
1677DEFINE_NWF_GUID!{GUID_NWF_COUNTRY_STRING, 76}
1678DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY, 77}
1679DEFINE_NWF_GUID!{GUID_NWF_EHCC_PRIME_RADIX, 78}
1680DEFINE_NWF_GUID!{GUID_NWF_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX, 79}
1681DEFINE_NWF_GUID!{GUID_NWF_EHCC_CAPABILITY_IMPLEMENTED, 80}
1682DEFINE_NWF_GUID!{GUID_NWF_EHCC_CAPABILITY_ENABLED, 81}
1683DEFINE_NWF_GUID!{GUID_NWF_HOP_ALGORITHM_ADOPTED, 82}
1684DEFINE_NWF_GUID!{GUID_NWF_RANDOM_TABLE_FLAG, 83}
1685DEFINE_NWF_GUID!{GUID_NWF_NUMBER_OF_HOPPING_SETS, 84}
1686DEFINE_NWF_GUID!{GUID_NWF_HOP_MODULUS, 85}
1687DEFINE_NWF_GUID!{GUID_NWF_HOP_OFFSET, 86}
1688DEFINE_NWF_GUID!{GUID_NWF_HOPPING_PATTERN, 87}
1689DEFINE_NWF_GUID!{GUID_NWF_RANDOM_TABLE_FIELD_NUMBER, 88}
1690DEFINE_NWF_GUID!{GUID_NWF_WPA_TSC, 89}
1691DEFINE_NWF_GUID!{GUID_NWF_RSSI_RANGE, 90}
1692DEFINE_NWF_GUID!{GUID_NWF_RF_USAGE, 91}
1693DEFINE_NWF_GUID!{GUID_NWF_NIC_SPECIFIC_EXTENSION, 92}
1694DEFINE_NWF_GUID!{GUID_NWF_AP_JOIN_REQUEST, 93}
1695DEFINE_NWF_GUID!{GUID_NWF_ERP_PBCC_OPTION_IMPLEMENTED, 94}
1696DEFINE_NWF_GUID!{GUID_NWF_ERP_PBCC_OPTION_ENABLED, 95}
1697DEFINE_NWF_GUID!{GUID_NWF_DSSS_OFDM_OPTION_IMPLEMENTED, 96}
1698DEFINE_NWF_GUID!{GUID_NWF_DSSS_OFDM_OPTION_ENABLED, 97}
1699DEFINE_NWF_GUID!{GUID_NWF_SHORT_SLOT_TIME_OPTION_IMPLEMENTED, 98}
1700DEFINE_NWF_GUID!{GUID_NWF_SHORT_SLOT_TIME_OPTION_ENABLED, 99}
1701DEFINE_NWF_GUID!{GUID_NWF_MAX_MAC_ADDRESS_STATES, 100}
1702DEFINE_NWF_GUID!{GUID_NWF_RECV_SENSITIVITY_LIST, 101}
1703DEFINE_NWF_GUID!{GUID_NWF_WME_IMPLEMENTED, 102}
1704DEFINE_NWF_GUID!{GUID_NWF_WME_ENABLED, 103}
1705DEFINE_NWF_GUID!{GUID_NWF_WME_AC_PARAMETERS, 104}
1706DEFINE_NWF_GUID!{GUID_NWF_WME_UPDATE_IE, 105}
1707DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_QUEUES_SUPPORTED, 106}
1708DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_DURATION, 107}
1709DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_MEDIUM_TIME, 108}
1710DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_OFDM_FREQUENCY_LIST, 109}
1711DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_DSSS_CHANNEL_LIST, 110}
1712DEFINE_NWF_GUID!{GUID_NWF_AUTO_CONFIG_ENABLED, 120}
1713DEFINE_NWF_GUID!{GUID_NWF_ENUM_BSS_LIST, 121}
1714DEFINE_NWF_GUID!{GUID_NWF_FLUSH_BSS_LIST, 122}
1715DEFINE_NWF_GUID!{GUID_NWF_POWER_MGMT_REQUEST, 123}
1716DEFINE_NWF_GUID!{GUID_NWF_DESIRED_SSID_LIST, 124}
1717DEFINE_NWF_GUID!{GUID_NWF_EXCLUDED_MAC_ADDRESS_LIST, 125}
1718DEFINE_NWF_GUID!{GUID_NWF_DESIRED_BSSID_LIST, 126}
1719DEFINE_NWF_GUID!{GUID_NWF_DESIRED_BSS_TYPE, 127}
1720DEFINE_NWF_GUID!{GUID_NWF_PMKID_LIST, 128}
1721DEFINE_NWF_GUID!{GUID_NWF_CONNECT_REQUEST, 129}
1722DEFINE_NWF_GUID!{GUID_NWF_EXCLUDE_UNENCRYPTED, 130}
1723DEFINE_NWF_GUID!{GUID_NWF_STATISTICS, 131}
1724DEFINE_NWF_GUID!{GUID_NWF_PRIVACY_EXEMPTION_LIST, 132}
1725DEFINE_NWF_GUID!{GUID_NWF_ENABLED_AUTHENTICATION_ALGORITHM, 133}
1726DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_UNICAST_ALGORITHM_PAIR, 134}
1727DEFINE_NWF_GUID!{GUID_NWF_ENABLED_UNICAST_CIPHER_ALGORITHM, 135}
1728DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_MULTICAST_ALGORITHM_PAIR, 136}
1729DEFINE_NWF_GUID!{GUID_NWF_ENABLED_MULTICAST_CIPHER_ALGORITHM, 137}
1730DEFINE_NWF_GUID!{GUID_NWF_CIPHER_DEFAULT_KEY_ID, 138}
1731DEFINE_NWF_GUID!{GUID_NWF_CIPHER_DEFAULT_KEY, 139}
1732DEFINE_NWF_GUID!{GUID_NWF_CIPHER_KEY_MAPPING_KEY, 140}
1733DEFINE_NWF_GUID!{GUID_NWF_ENUM_ASSOCIATION_INFO, 141}
1734DEFINE_NWF_GUID!{GUID_NWF_DISCONNECT_REQUEST, 142}
1735DEFINE_NWF_GUID!{GUID_NWF_UNICAST_USE_GROUP_ENABLED, 143}
1736DEFINE_NWF_GUID!{GUID_NWF_PHY_STATE, 144}
1737DEFINE_NWF_GUID!{GUID_NWF_DESIRED_PHY_LIST, 145}
1738DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PHY_ID, 146}
1739DEFINE_NWF_GUID!{GUID_NWF_MEDIA_STREAMING_ENABLED, 147}
1740DEFINE_NWF_GUID!{GUID_NWF_UNREACHABLE_DETECTION_THRESHOLD, 148}
1741DEFINE_NWF_GUID!{GUID_NWF_ACTIVE_PHY_LIST, 149}
1742DEFINE_NWF_GUID!{GUID_NWF_EXTSTA_CAPABILITY, 150}
1743DEFINE_NWF_GUID!{GUID_NWF_DATA_RATE_MAPPING_TABLE, 151}
1744DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_COUNTRY_OR_REGION_STRING, 152}
1745DEFINE_NWF_GUID!{GUID_NWF_DESIRED_COUNTRY_OR_REGION_STRING, 153}
1746DEFINE_NWF_GUID!{GUID_NWF_PORT_STATE_NOTIFICATION, 154}
1747DEFINE_NWF_GUID!{GUID_NWF_IBSS_PARAMS, 155}
1748DEFINE_NWF_GUID!{GUID_NWF_QOS_PARAMS, 156}
1749DEFINE_NWF_GUID!{GUID_NWF_SAFE_MODE_ENABLED, 157}
1750DEFINE_NWF_GUID!{GUID_NWF_HIDDEN_NETWORK_ENABLED, 158}
1751DEFINE_NWF_GUID!{GUID_NWF_ASSOCIATION_PARAMS, 159}
1752DEFINE_NWF_GUID!{GUID_NWF_CURRENT_ADDRESS, 1024 + 2}
1753DEFINE_NWF_GUID!{GUID_NWF_PERMANENT_ADDRESS, 1024 + 3}
1754DEFINE_NWF_GUID!{GUID_NWF_MULTICAST_LIST, 1024 + 4}
1755DEFINE_NWF_GUID!{GUID_NWF_MAXIMUM_LIST_SIZE, 1024 + 5}
1756pub const DOT11_EXTAP_ATTRIBUTES_REVISION_1: UCHAR = 1;
1757STRUCT!{struct DOT11_EXTAP_ATTRIBUTES {
1758 Header: NDIS_OBJECT_HEADER,
1759 uScanSSIDListSize: ULONG,
1760 uDesiredSSIDListSize: ULONG,
1761 uPrivacyExemptionListSize: ULONG,
1762 uAssociationTableSize: ULONG,
1763 uDefaultKeyTableSize: ULONG,
1764 uWEPKeyValueMaxLength: ULONG,
1765 bStrictlyOrderedServiceClassImplemented: BOOLEAN,
1766 uNumSupportedCountryOrRegionStrings: ULONG,
1767 pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
1768 uInfraNumSupportedUcastAlgoPairs: ULONG,
1769 pInfraSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1770 uInfraNumSupportedMcastAlgoPairs: ULONG,
1771 pInfraSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
1772}}
1773pub type PDOT11_EXTAP_ATTRIBUTES = *mut DOT11_EXTAP_ATTRIBUTES;
1774pub const DOT11_INCOMING_ASSOC_STARTED_PARAMETERS_REVISION_1: UCHAR = 1;
1775STRUCT!{struct DOT11_INCOMING_ASSOC_STARTED_PARAMETERS {
1776 Header: NDIS_OBJECT_HEADER,
1777 PeerMacAddr: DOT11_MAC_ADDRESS,
1778}}
1779pub type PDOT11_INCOMING_ASSOC_STARTED_PARAMETERS = *mut DOT11_INCOMING_ASSOC_STARTED_PARAMETERS;
1780pub const DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS_REVISION_1: UCHAR = 1;
1781STRUCT!{struct DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS {
1782 Header: NDIS_OBJECT_HEADER,
1783 PeerMacAddr: DOT11_MAC_ADDRESS,
1784 bReAssocReq: BOOLEAN,
1785 uAssocReqOffset: ULONG,
1786 uAssocReqSize: ULONG,
1787}}
1788pub type PDOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS =
1789 *mut DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS;
1790pub const DOT11_ASSOC_ERROR_SOURCE_OS: UCHAR = 0x0;
1791pub const DOT11_ASSOC_ERROR_SOURCE_REMOTE: UCHAR = 0x01;
1792pub const DOT11_ASSOC_ERROR_SOURCE_OTHER: UCHAR = 0xFF;
1793pub const DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1794STRUCT!{struct DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS {
1795 Header: NDIS_OBJECT_HEADER,
1796 PeerMacAddr: DOT11_MAC_ADDRESS,
1797 uStatus: ULONG,
1798 ucErrorSource: UCHAR,
1799 bReAssocReq: BOOLEAN,
1800 bReAssocResp: BOOLEAN,
1801 uAssocReqOffset: ULONG,
1802 uAssocReqSize: ULONG,
1803 uAssocRespOffset: ULONG,
1804 uAssocRespSize: ULONG,
1805 AuthAlgo: DOT11_AUTH_ALGORITHM,
1806 UnicastCipher: DOT11_CIPHER_ALGORITHM,
1807 MulticastCipher: DOT11_CIPHER_ALGORITHM,
1808 uActivePhyListOffset: ULONG,
1809 uActivePhyListSize: ULONG,
1810 uBeaconOffset: ULONG,
1811 uBeaconSize: ULONG,
1812}}
1813pub type PDOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS =
1814 *mut DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS;
1815pub const DOT11_STOP_AP_PARAMETERS_REVISION_1: UCHAR = 1;
1816STRUCT!{struct DOT11_STOP_AP_PARAMETERS {
1817 Header: NDIS_OBJECT_HEADER,
1818 ulReason: ULONG,
1819}}
1820pub type PDOT11_STOP_AP_PARAMETERS = *mut DOT11_STOP_AP_PARAMETERS;
1821pub const DOT11_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE: ULONG = 0x1;
1822pub const DOT11_STOP_AP_REASON_CHANNEL_NOT_AVAILABLE: ULONG = 0x2;
1823pub const DOT11_STOP_AP_REASON_AP_ACTIVE: ULONG = 0x3;
1824pub const DOT11_STOP_AP_REASON_IHV_START: ULONG = 0xFF000000;
1825pub const DOT11_STOP_AP_REASON_IHV_END: ULONG = 0xFFFFFFFF;
1826pub const DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_REVISION_1: UCHAR = 1;
1827UNION!{union DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_u {
1828 [u32; 1],
1829 ulChannel ulChannel_mut: ULONG,
1830 ulFrequency ulFrequency_mut: ULONG,
1831}}
1832STRUCT!{struct DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS {
1833 Header: NDIS_OBJECT_HEADER,
1834 ulPhyId: ULONG,
1835 u: DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_u,
1836}}
1837pub type PDOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS = *mut DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS;
1838pub const DOT11_CAN_SUSTAIN_AP_PARAMETERS_REVISION_1: UCHAR = 1;
1839STRUCT!{struct DOT11_CAN_SUSTAIN_AP_PARAMETERS {
1840 Header: NDIS_OBJECT_HEADER,
1841 ulReason: ULONG,
1842}}
1843pub type PDOT11_CAN_SUSTAIN_AP_PARAMETERS = *mut DOT11_CAN_SUSTAIN_AP_PARAMETERS;
1844pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_START: ULONG = 0xFF000000;
1845pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_END: ULONG = 0xFFFFFFFF;
1846pub const NWF_EXTAP_OID: u32 = 0x03;
1847pub const OID_DOT11_WPS_ENABLED: u32 = NWF_DEFINE_OID!(0x01, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1848pub const OID_DOT11_START_AP_REQUEST: u32 =
1849 NWF_DEFINE_OID!(0x02, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1850pub const OID_DOT11_AVAILABLE_CHANNEL_LIST: u32 =
1851 NWF_DEFINE_OID!(0x03, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1852pub const DOT11_AVAILABLE_CHANNEL_LIST_REVISION_1: UCHAR = 1;
1853STRUCT!{struct DOT11_AVAILABLE_CHANNEL_LIST {
1854 Header: NDIS_OBJECT_HEADER,
1855 uNumOfEntries: ULONG,
1856 uTotalNumOfEntries: ULONG,
1857 uChannelNumber: [ULONG; 1],
1858}}
1859pub type PDOT11_AVAILABLE_CHANNEL_LIST = *mut DOT11_AVAILABLE_CHANNEL_LIST;
1860pub const OID_DOT11_AVAILABLE_FREQUENCY_LIST: u32 =
1861 NWF_DEFINE_OID!(0x04, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1862pub const DOT11_AVAILABLE_FREQUENCY_LIST_REVISION_1: UCHAR = 1;
1863STRUCT!{struct DOT11_AVAILABLE_FREQUENCY_LIST {
1864 Header: NDIS_OBJECT_HEADER,
1865 uNumOfEntries: ULONG,
1866 uTotalNumOfEntries: ULONG,
1867 uFrequencyValue: [ULONG; 1],
1868}}
1869pub type PDOT11_AVAILABLE_FREQUENCY_LIST = *mut DOT11_AVAILABLE_FREQUENCY_LIST;
1870pub const OID_DOT11_DISASSOCIATE_PEER_REQUEST: u32 =
1871 NWF_DEFINE_OID!(0x05, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1872pub const DOT11_DISASSOCIATE_PEER_REQUEST_REVISION_1: UCHAR = 1;
1873STRUCT!{struct DOT11_DISASSOCIATE_PEER_REQUEST {
1874 Header: NDIS_OBJECT_HEADER,
1875 PeerMacAddr: DOT11_MAC_ADDRESS,
1876 usReason: USHORT,
1877}}
1878pub type PDOT11_DISASSOCIATE_PEER_REQUEST = *mut DOT11_DISASSOCIATE_PEER_REQUEST;
1879pub const OID_DOT11_INCOMING_ASSOCIATION_DECISION: u32 =
1880 NWF_DEFINE_OID!(0x06, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1881pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_1: UCHAR = 1;
1882STRUCT!{struct DOT11_INCOMING_ASSOC_DECISION {
1883 Header: NDIS_OBJECT_HEADER,
1884 PeerMacAddr: DOT11_MAC_ADDRESS,
1885 bAccept: BOOLEAN,
1886 usReasonCode: USHORT,
1887 uAssocResponseIEsOffset: ULONG,
1888 uAssocResponseIEsLength: ULONG,
1889}}
1890pub type PDOT11_INCOMING_ASSOC_DECISION = *mut DOT11_INCOMING_ASSOC_DECISION;
1891pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_2: UCHAR = 2;
1892STRUCT!{struct DOT11_INCOMING_ASSOC_DECISION_V2 {
1893 Header: NDIS_OBJECT_HEADER,
1894 PeerMacAddr: DOT11_MAC_ADDRESS,
1895 bAccept: BOOLEAN,
1896 usReasonCode: USHORT,
1897 uAssocResponseIEsOffset: ULONG,
1898 uAssocResponseIEsLength: ULONG,
1899 WFDStatus: DOT11_WFD_STATUS_CODE,
1900}}
1901pub type PDOT11_INCOMING_ASSOC_DECISION_V2 = *mut DOT11_INCOMING_ASSOC_DECISION_V2;
1902pub const OID_DOT11_ADDITIONAL_IE: u32 = NWF_DEFINE_OID!(0x07, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1903pub const DOT11_ADDITIONAL_IE_REVISION_1: UCHAR = 1;
1904STRUCT!{struct DOT11_ADDITIONAL_IE {
1905 Header: NDIS_OBJECT_HEADER,
1906 uBeaconIEsOffset: ULONG,
1907 uBeaconIEsLength: ULONG,
1908 uResponseIEsOffset: ULONG,
1909 uResponseIEsLength: ULONG,
1910}}
1911pub type PDOT11_ADDITIONAL_IE = *mut DOT11_ADDITIONAL_IE;
1912pub const DOT11_EXTAP_SEND_CONTEXT_REVISION_1: UCHAR = 1;
1913pub const DOT11_EXTAP_RECV_CONTEXT_REVISION_1: UCHAR = 1;
1914pub const OID_DOT11_ENUM_PEER_INFO: u32 = NWF_DEFINE_OID!(0x08, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1915STRUCT!{struct DOT11_PEER_STATISTICS {
1916 ullDecryptSuccessCount: ULONGLONG,
1917 ullDecryptFailureCount: ULONGLONG,
1918 ullTxPacketSuccessCount: ULONGLONG,
1919 ullTxPacketFailureCount: ULONGLONG,
1920 ullRxPacketSuccessCount: ULONGLONG,
1921 ullRxPacketFailureCount: ULONGLONG,
1922}}
1923pub type PDOT11_PEER_STATISTICS = *mut DOT11_PEER_STATISTICS;
1924STRUCT!{struct DOT11_PEER_INFO {
1925 MacAddress: DOT11_MAC_ADDRESS,
1926 usCapabilityInformation: USHORT,
1927 AuthAlgo: DOT11_AUTH_ALGORITHM,
1928 UnicastCipherAlgo: DOT11_CIPHER_ALGORITHM,
1929 MulticastCipherAlgo: DOT11_CIPHER_ALGORITHM,
1930 bWpsEnabled: BOOLEAN,
1931 usListenInterval: USHORT,
1932 ucSupportedRates: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
1933 usAssociationID: USHORT,
1934 AssociationState: DOT11_ASSOCIATION_STATE,
1935 PowerMode: DOT11_POWER_MODE,
1936 liAssociationUpTime: LARGE_INTEGER,
1937 Statistics: DOT11_PEER_STATISTICS,
1938}}
1939pub type PDOT11_PEER_INFO = *mut DOT11_PEER_INFO;
1940pub const DOT11_PEER_INFO_LIST_REVISION_1: UCHAR = 1;
1941STRUCT!{struct DOT11_PEER_INFO_LIST {
1942 Header: NDIS_OBJECT_HEADER,
1943 uNumOfEntries: ULONG,
1944 uTotalNumOfEntries: ULONG,
1945 PeerInfo: [DOT11_PEER_INFO; 1],
1946}}
1947pub type PDOT11_PEER_INFO_LIST = *mut DOT11_PEER_INFO_LIST;
1948pub const DOT11_VWIFI_COMBINATION_REVISION_1: UCHAR = 1;
1949STRUCT!{struct DOT11_VWIFI_COMBINATION {
1950 Header: NDIS_OBJECT_HEADER,
1951 uNumInfrastructure: ULONG,
1952 uNumAdhoc: ULONG,
1953 uNumSoftAP: ULONG,
1954}}
1955pub type PDOT11_VWIFI_COMBINATION = *mut DOT11_VWIFI_COMBINATION;
1956pub const DOT11_VWIFI_COMBINATION_REVISION_2: UCHAR = 2;
1957STRUCT!{struct DOT11_VWIFI_COMBINATION_V2 {
1958 Header: NDIS_OBJECT_HEADER,
1959 uNumInfrastructure: ULONG,
1960 uNumAdhoc: ULONG,
1961 uNumSoftAP: ULONG,
1962 uNumVirtualStation: ULONG,
1963}}
1964pub type PDOT11_VWIFI_COMBINATION_V2 = *mut DOT11_VWIFI_COMBINATION_V2;
1965pub const DOT11_VWIFI_COMBINATION_REVISION_3: UCHAR = 3;
1966STRUCT!{struct DOT11_VWIFI_COMBINATION_V3 {
1967 Header: NDIS_OBJECT_HEADER,
1968 uNumInfrastructure: ULONG,
1969 uNumAdhoc: ULONG,
1970 uNumSoftAP: ULONG,
1971 uNumVirtualStation: ULONG,
1972 uNumWFDGroup: ULONG,
1973}}
1974pub type PDOT11_VWIFI_COMBINATION_V3 = *mut DOT11_VWIFI_COMBINATION_V3;
1975pub const DOT11_VWIFI_ATTRIBUTES_REVISION_1: UCHAR = 1;
1976STRUCT!{struct DOT11_VWIFI_ATTRIBUTES {
1977 Header: NDIS_OBJECT_HEADER,
1978 uTotalNumOfEntries: ULONG,
1979 Combinations: [DOT11_VWIFI_COMBINATION; 1],
1980}}
1981pub type PDOT11_VWIFI_ATTRIBUTES = *mut DOT11_VWIFI_ATTRIBUTES;
1982pub const NWF_VWIFI_OID: u32 = 0x04;
1983pub const OID_DOT11_CREATE_MAC: u32 = NWF_DEFINE_OID!(0x01, NWF_VWIFI_OID, NWF_MANDATORY_OID);
1984pub const DOT11_MAC_PARAMETERS_REVISION_1: UCHAR = 1;
1985STRUCT!{struct DOT11_MAC_PARAMETERS {
1986 Header: NDIS_OBJECT_HEADER,
1987 uOpmodeMask: ULONG,
1988}}
1989pub type PDOT11_MAC_PARAMETERS = *mut DOT11_MAC_PARAMETERS;
1990STRUCT!{struct DOT11_MAC_INFO {
1991 uReserved: ULONG,
1992 uNdisPortNumber: ULONG,
1993 MacAddr: DOT11_MAC_ADDRESS,
1994}}
1995pub type PDOT11_MAC_INFO = *mut DOT11_MAC_INFO;
1996pub const OID_DOT11_DELETE_MAC: u32 = NWF_DEFINE_OID!(0x02, NWF_VWIFI_OID, NWF_MANDATORY_OID);
1997pub const OID_DOT11_PREFERRED_MAC: u32 = NWF_DEFINE_OID!(0x03, NWF_VWIFI_OID, NWF_MANDATORY_OID);
1998pub const OID_DOT11_VIRTUAL_STATION_CAPABILITY: u32 =
1999 NWF_DEFINE_OID!(0x04, NWF_VWIFI_OID, NWF_OPTIONAL_OID);
2000pub const DOT11_WFD_ATTRIBUTES_REVISION_1: UCHAR = 1;
2001STRUCT!{struct DOT11_WFD_ATTRIBUTES {
2002 Header: NDIS_OBJECT_HEADER,
2003 uNumConcurrentGORole: ULONG,
2004 uNumConcurrentClientRole: ULONG,
2005 WPSVersionsSupported: ULONG,
2006 bServiceDiscoverySupported: BOOLEAN,
2007 bClientDiscoverabilitySupported: BOOLEAN,
2008 bInfrastructureManagementSupported: BOOLEAN,
2009 uMaxSecondaryDeviceTypeListSize: ULONG,
2010 DeviceAddress: DOT11_MAC_ADDRESS,
2011 uInterfaceAddressListCount: ULONG,
2012 pInterfaceAddressList: PDOT11_MAC_ADDRESS,
2013 uNumSupportedCountryOrRegionStrings: ULONG,
2014 pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
2015 uDiscoveryFilterListSize: ULONG,
2016 uGORoleClientTableSize: ULONG,
2017}}
2018pub type PDOT11_WFD_ATTRIBUTES = *mut DOT11_WFD_ATTRIBUTES;
2019pub type DOT11_WFD_GROUP_CAPABILITY = UCHAR;
2020pub const DOT11_WFD_STATUS_SUCCESS: DOT11_WFD_STATUS_CODE = 0;
2021pub const DOT11_WFD_STATUS_FAILED_INFORMATION_IS_UNAVAILABLE: DOT11_WFD_STATUS_CODE = 1;
2022pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PARAMETERS: DOT11_WFD_STATUS_CODE = 2;
2023pub const DOT11_WFD_STATUS_FAILED_LIMIT_REACHED: DOT11_WFD_STATUS_CODE = 3;
2024pub const DOT11_WFD_STATUS_FAILED_INVALID_PARAMETERS: DOT11_WFD_STATUS_CODE = 4;
2025pub const DOT11_WFD_STATUS_FAILED_UNABLE_TO_ACCOMODATE_REQUEST: DOT11_WFD_STATUS_CODE = 5;
2026pub const DOT11_WFD_STATUS_FAILED_PREVIOUS_PROTOCOL_ERROR: DOT11_WFD_STATUS_CODE = 6;
2027pub const DOT11_WFD_STATUS_FAILED_NO_COMMON_CHANNELS: DOT11_WFD_STATUS_CODE = 7;
2028pub const DOT11_WFD_STATUS_FAILED_UNKNOWN_WFD_GROUP: DOT11_WFD_STATUS_CODE = 8;
2029pub const DOT11_WFD_STATUS_FAILED_MATCHING_MAX_INTENT: DOT11_WFD_STATUS_CODE = 9;
2030pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PROVISIONING_METHOD: DOT11_WFD_STATUS_CODE = 10;
2031pub const DOT11_WFD_STATUS_FAILED_REJECTED_BY_USER: DOT11_WFD_STATUS_CODE = 11;
2032pub const DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER: DOT11_WFD_STATUS_CODE = 12;
2033#[inline]
2034pub fn WFD_STATUS_SUCCEEDED(status: DOT11_WFD_STATUS_CODE) -> bool {
2035 status == DOT11_WFD_STATUS_SUCCESS || status == DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER
2036}
2037#[inline]
2038pub fn WFD_STATUS_FAILED(status: DOT11_WFD_STATUS_CODE) -> bool {
2039 status != DOT11_WFD_STATUS_SUCCESS || status != DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER
2040}
2041pub const DOT11_WFD_MINOR_REASON_SUCCESS: i32 = 0;
2042pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_FROM_WLAN_CROSS_CONNECTION_POLICY: i32 = 1;
2043pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_NOT_MANAGED_INFRASTRUCTURE_CAPABLE: i32 = 2;
2044pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_WFD_COEXISTENCE_POLICY: i32 = 3;
2045pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_INFRASTRUCTURE_MANAGED_POLICY: i32 = 4;
2046pub const DOT11_WPS_VERSION_1_0: u8 = 0x01;
2047pub const DOT11_WPS_VERSION_2_0: u8 = 0x02;
2048pub const DOT11_WFD_DEVICE_CAPABILITY_SERVICE_DISCOVERY: u8 = 0x01;
2049pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_CLIENT_DISCOVERABILITY: u8 = 0x02;
2050pub const DOT11_WFD_DEVICE_CAPABILITY_CONCURRENT_OPERATION: u8 = 0x04;
2051pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INFRASTRUCTURE_MANAGED: u8 = 0x08;
2052pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_DEVICE_LIMIT: u8 = 0x10;
2053pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INVITATION_PROCEDURE: u8 = 0x20;
2054pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_6: u8 = 0x40;
2055pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_7: u8 = 0x80;
2056pub const DOT11_WFD_GROUP_CAPABILITY_NONE: u8 = 0x00;
2057pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_OWNER: u8 = 0x01;
2058pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_GROUP: u8 = 0x02;
2059pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_LIMIT_REACHED: u8 = 0x04;
2060pub const DOT11_WFD_GROUP_CAPABILITY_INTRABSS_DISTRIBUTION_SUPPORTED: u8 = 0x08;
2061pub const DOT11_WFD_GROUP_CAPABILITY_CROSS_CONNECTION_SUPPORTED: u8 = 0x10;
2062pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_RECONNECT_SUPPORTED: u8 = 0x20;
2063pub const DOT11_WFD_GROUP_CAPABILITY_IN_GROUP_FORMATION: u8 = 0x40;
2064pub const DOT11_WFD_GROUP_CAPABILITY_RESERVED_7: u8 = 0x80;
2065pub const DOT11_WFD_GROUP_CAPABILITY_EAPOL_KEY_IP_ADDRESS_ALLOCATION_SUPPORTED: u8 = 0x80;
2066pub const DOT11_WPS_DEVICE_NAME_MAX_LENGTH: usize = 32;
2067pub const DOT11_WPS_MAX_PASSKEY_LENGTH: usize = 8;
2068pub const DOT11_WPS_MAX_MODEL_NAME_LENGTH: usize = 32;
2069pub const DOT11_WPS_MAX_MODEL_NUMBER_LENGTH: usize = 32;
2070STRUCT!{struct DOT11_WFD_DEVICE_TYPE {
2071 CategoryID: USHORT,
2072 SubCategoryID: USHORT,
2073 OUI: [UCHAR; 4],
2074}}
2075pub type PDOT11_WFD_DEVICE_TYPE = *mut DOT11_WFD_DEVICE_TYPE;
2076STRUCT!{struct DOT11_WPS_DEVICE_NAME {
2077 uDeviceNameLength: ULONG,
2078 ucDeviceName: [UCHAR; DOT11_WPS_DEVICE_NAME_MAX_LENGTH],
2079}}
2080pub type PDOT11_WPS_DEVICE_NAME = *mut DOT11_WPS_DEVICE_NAME;
2081STRUCT!{struct DOT11_WFD_CONFIGURATION_TIMEOUT {
2082 GOTimeout: UCHAR,
2083 ClientTimeout: UCHAR,
2084}}
2085pub type PDOT11_WFD_CONFIGURATION_TIMEOUT = *mut DOT11_WFD_CONFIGURATION_TIMEOUT;
2086STRUCT!{struct DOT11_WFD_GROUP_ID {
2087 DeviceAddress: DOT11_MAC_ADDRESS,
2088 SSID: DOT11_SSID,
2089}}
2090pub type PDOT11_WFD_GROUP_ID = *mut DOT11_WFD_GROUP_ID;
2091STRUCT!{#[repr(packed)] struct DOT11_WFD_GO_INTENT {
2092 Bitfields: UCHAR,
2093}}
2094BITFIELD!{DOT11_WFD_GO_INTENT Bitfields: UCHAR [
2095 TieBreaker set_TieBreaker[0..1],
2096 Intent set_Intent[1..8],
2097]}
2098pub type PDOT11_WFD_GO_INTENT = *mut DOT11_WFD_GO_INTENT;
2099STRUCT!{struct DOT11_WFD_CHANNEL {
2100 CountryRegionString: DOT11_COUNTRY_OR_REGION_STRING,
2101 OperatingClass: UCHAR,
2102 ChannelNumber: UCHAR,
2103}}
2104pub type PDOT11_WFD_CHANNEL = *mut DOT11_WFD_CHANNEL;
2105ENUM!{enum DOT11_WPS_CONFIG_METHOD {
2106 DOT11_WPS_CONFIG_METHOD_NULL = 0,
2107 DOT11_WPS_CONFIG_METHOD_DISPLAY = 0x0008,
2108 DOT11_WPS_CONFIG_METHOD_NFC_TAG = 0x0020,
2109 DOT11_WPS_CONFIG_METHOD_NFC_INTERFACE = 0x0040,
2110 DOT11_WPS_CONFIG_METHOD_PUSHBUTTON = 0x0080,
2111 DOT11_WPS_CONFIG_METHOD_KEYPAD = 0x0100,
2112 DOT11_WPS_CONFIG_METHOD_WFDS_DEFAULT = 0x1000,
2113}}
2114pub type PDOT11_WPS_CONFIG_METHOD = *mut DOT11_WPS_CONFIG_METHOD;
2115ENUM!{enum DOT11_WPS_DEVICE_PASSWORD_ID {
2116 DOT11_WPS_PASSWORD_ID_DEFAULT = 0x0000,
2117 DOT11_WPS_PASSWORD_ID_USER_SPECIFIED = 0x0001,
2118 DOT11_WPS_PASSWORD_ID_MACHINE_SPECIFIED = 0x0002,
2119 DOT11_WPS_PASSWORD_ID_REKEY = 0x0003,
2120 DOT11_WPS_PASSWORD_ID_PUSHBUTTON = 0x0004,
2121 DOT11_WPS_PASSWORD_ID_REGISTRAR_SPECIFIED = 0x0005,
2122 DOT11_WPS_PASSWORD_ID_NFC_CONNECTION_HANDOVER = 0x0007,
2123 DOT11_WPS_PASSWORD_ID_WFD_SERVICES = 0x0008,
2124 DOT11_WPS_PASSWORD_ID_OOB_RANGE_MIN = 0x0010,
2125 DOT11_WPS_PASSWORD_ID_OOB_RANGE_MAX = 0xFFFF,
2126}}
2127pub type PDOT11_WPS_DEVICE_PASSWORD_ID = *mut DOT11_WPS_DEVICE_PASSWORD_ID;
2128STRUCT!{struct WFDSVC_CONNECTION_CAPABILITY {
2129 bNew: BOOLEAN,
2130 bClient: BOOLEAN,
2131 bGO: BOOLEAN,
2132}}
2133pub type PWFDSVC_CONNECTION_CAPABILITY = *mut WFDSVC_CONNECTION_CAPABILITY;
2134pub const WFDSVC_CONNECTION_CAPABILITY_NEW: BOOLEAN = 0x01;
2135pub const WFDSVC_CONNECTION_CAPABILITY_CLIENT: BOOLEAN = 0x02;
2136pub const WFDSVC_CONNECTION_CAPABILITY_GO: BOOLEAN = 0x04;
2137STRUCT!{struct DOT11_WFD_SERVICE_HASH_LIST {
2138 ServiceHashCount: USHORT,
2139 ServiceHash: [DOT11_WFD_SERVICE_HASH; 1],
2140}}
2141pub type PDOT11_WFD_SERVICE_HASH_LIST = *mut DOT11_WFD_SERVICE_HASH_LIST;
2142STRUCT!{struct DOT11_WFD_ADVERTISEMENT_ID {
2143 AdvertisementID: ULONG,
2144 ServiceAddress: DOT11_MAC_ADDRESS,
2145}}
2146pub type PDOT11_WFD_ADVERTISEMENT_ID = *mut DOT11_WFD_ADVERTISEMENT_ID;
2147STRUCT!{struct DOT11_WFD_SESSION_ID {
2148 SessionID: ULONG,
2149 SessionAddress: DOT11_MAC_ADDRESS,
2150}}
2151pub type PDOT11_WFD_SESSION_ID = *mut DOT11_WFD_SESSION_ID;
2152STRUCT!{struct DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR {
2153 AdvertisementID: ULONG,
2154 ConfigMethods: USHORT,
2155 ServiceNameLength: UCHAR,
2156 ServiceName: [UCHAR; DOT11_WFD_SERVICE_NAME_MAX_LENGTH],
2157}}
2158pub type PDOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR = *mut DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR;
2159STRUCT!{struct DOT11_WFD_ADVERTISED_SERVICE_LIST {
2160 ServiceCount: USHORT,
2161 AdvertisedService: [DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR; 1],
2162}}
2163pub type PDOT11_WFD_ADVERTISED_SERVICE_LIST = *mut DOT11_WFD_ADVERTISED_SERVICE_LIST;
2164pub const DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2165pub const DOT11_WFD_DISCOVER_COMPLETE_MAX_LIST_SIZE: ULONG = 128;
2166STRUCT!{struct DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS {
2167 Header: NDIS_OBJECT_HEADER,
2168 Status: NDIS_STATUS,
2169 uNumOfEntries: ULONG,
2170 uTotalNumOfEntries: ULONG,
2171 uListOffset: ULONG,
2172 uListLength: ULONG,
2173}}
2174pub type PDOT11_WFD_DISCOVER_COMPLETE_PARAMETERS = *mut DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS;
2175pub const DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2176STRUCT!{struct DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS {
2177 Header: NDIS_OBJECT_HEADER,
2178 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2179 DialogToken: DOT11_DIALOG_TOKEN,
2180 Status: NDIS_STATUS,
2181 uIEsOffset: ULONG,
2182 uIEsLength: ULONG,
2183}}
2184pub type PDOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS =
2185 *mut DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS;
2186pub const DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2187STRUCT!{struct DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS {
2188 Header: NDIS_OBJECT_HEADER,
2189 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2190 DialogToken: DOT11_DIALOG_TOKEN,
2191 RequestContext: PVOID,
2192 uIEsOffset: ULONG,
2193 uIEsLength: ULONG,
2194}}
2195pub type PDOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS =
2196 *mut DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS;
2197pub const DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2198STRUCT!{struct DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS {
2199 Header: NDIS_OBJECT_HEADER,
2200 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2201 DialogToken: DOT11_DIALOG_TOKEN,
2202 Status: NDIS_STATUS,
2203 uIEsOffset: ULONG,
2204 uIEsLength: ULONG,
2205}}
2206pub type PDOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS =
2207 *mut DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS;
2208pub const DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2209STRUCT!{struct DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS {
2210 Header: NDIS_OBJECT_HEADER,
2211 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2212 DialogToken: DOT11_DIALOG_TOKEN,
2213 ResponseContext: PVOID,
2214 uIEsOffset: ULONG,
2215 uIEsLength: ULONG,
2216}}
2217pub type PDOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS =
2218 *mut DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS;
2219pub const DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2220STRUCT!{struct DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS {
2221 Header: NDIS_OBJECT_HEADER,
2222 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2223 DialogToken: DOT11_DIALOG_TOKEN,
2224 Status: NDIS_STATUS,
2225 uIEsOffset: ULONG,
2226 uIEsLength: ULONG,
2227}}
2228pub type PDOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS =
2229 *mut DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS;
2230pub const DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: UCHAR = 1;
2231STRUCT!{struct DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS {
2232 Header: NDIS_OBJECT_HEADER,
2233 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2234 DialogToken: DOT11_DIALOG_TOKEN,
2235 uIEsOffset: ULONG,
2236 uIEsLength: ULONG,
2237}}
2238pub type PDOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS =
2239 *mut DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS;
2240pub const DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2241STRUCT!{struct DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS {
2242 Header: NDIS_OBJECT_HEADER,
2243 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2244 ReceiverAddress: DOT11_MAC_ADDRESS,
2245 DialogToken: DOT11_DIALOG_TOKEN,
2246 Status: NDIS_STATUS,
2247 uIEsOffset: ULONG,
2248 uIEsLength: ULONG,
2249}}
2250pub type PDOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS =
2251 *mut DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS;
2252pub const DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2253STRUCT!{struct DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS {
2254 Header: NDIS_OBJECT_HEADER,
2255 TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
2256 BSSID: DOT11_MAC_ADDRESS,
2257 DialogToken: DOT11_DIALOG_TOKEN,
2258 RequestContext: PVOID,
2259 uIEsOffset: ULONG,
2260 uIEsLength: ULONG,
2261}}
2262pub type PDOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS =
2263 *mut DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS;
2264pub const DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2265STRUCT!{struct DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS {
2266 Header: NDIS_OBJECT_HEADER,
2267 ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
2268 DialogToken: DOT11_DIALOG_TOKEN,
2269 Status: NDIS_STATUS,
2270 uIEsOffset: ULONG,
2271 uIEsLength: ULONG,
2272}}
2273pub type PDOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS =
2274 *mut DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS;
2275pub const DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2276STRUCT!{struct DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS {
2277 Header: NDIS_OBJECT_HEADER,
2278 TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
2279 BSSID: DOT11_MAC_ADDRESS,
2280 DialogToken: DOT11_DIALOG_TOKEN,
2281 uIEsOffset: ULONG,
2282 uIEsLength: ULONG,
2283}}
2284pub type PDOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS =
2285 *mut DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS;
2286pub const DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2287STRUCT!{struct DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS {
2288 Header: NDIS_OBJECT_HEADER,
2289 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2290 ReceiverAddress: DOT11_MAC_ADDRESS,
2291 DialogToken: DOT11_DIALOG_TOKEN,
2292 Status: NDIS_STATUS,
2293 uIEsOffset: ULONG,
2294 uIEsLength: ULONG,
2295}}
2296pub type PDOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS =
2297 *mut DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS;
2298pub const DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2299STRUCT!{struct DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS {
2300 Header: NDIS_OBJECT_HEADER,
2301 TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
2302 BSSID: DOT11_MAC_ADDRESS,
2303 DialogToken: DOT11_DIALOG_TOKEN,
2304 RequestContext: PVOID,
2305 uIEsOffset: ULONG,
2306 uIEsLength: ULONG,
2307}}
2308pub type PDOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS =
2309 *mut DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS;
2310pub const DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2311STRUCT!{struct DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS {
2312 Header: NDIS_OBJECT_HEADER,
2313 ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
2314 DialogToken: DOT11_DIALOG_TOKEN,
2315 Status: NDIS_STATUS,
2316 uIEsOffset: ULONG,
2317 uIEsLength: ULONG,
2318}}
2319pub type PDOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS =
2320 *mut DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS;
2321pub const DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2322STRUCT!{struct DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS {
2323 Header: NDIS_OBJECT_HEADER,
2324 TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
2325 BSSID: DOT11_MAC_ADDRESS,
2326 DialogToken: DOT11_DIALOG_TOKEN,
2327 uIEsOffset: ULONG,
2328 uIEsLength: ULONG,
2329}}
2330pub type PDOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS =
2331 *mut DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS;
2332pub const DOT11_ANQP_QUERY_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2333ENUM!{enum DOT11_ANQP_QUERY_RESULT {
2334 dot11_ANQP_query_result_success = 0,
2335 dot11_ANQP_query_result_failure = 1,
2336 dot11_ANQP_query_result_timed_out = 2,
2337 dot11_ANQP_query_result_resources = 3,
2338 dot11_ANQP_query_result_advertisement_protocol_not_supported_on_remote = 4,
2339 dot11_ANQP_query_result_gas_protocol_failure = 5,
2340 dot11_ANQP_query_result_advertisement_server_not_responding = 6,
2341 dot11_ANQP_query_result_access_issues = 7,
2342}}
2343pub type PDOT11_ANQP_QUERY_RESULT = *mut DOT11_ANQP_QUERY_RESULT;
2344STRUCT!{struct DOT11_ANQP_QUERY_COMPLETE_PARAMETERS {
2345 Header: NDIS_OBJECT_HEADER,
2346 Status: DOT11_ANQP_QUERY_RESULT,
2347 hContext: HANDLE,
2348 uResponseLength: ULONG,
2349}}
2350pub type PDOT11_ANQP_QUERY_COMPLETE_PARAMETERS = *mut DOT11_ANQP_QUERY_COMPLETE_PARAMETERS;
2351pub const NWF_WFD_DEVICE_OID: u32 = 0x05;
2352pub const NWF_WFD_ROLE_OID: u32 = 0x06;
2353pub const OID_DOT11_WFD_DEVICE_CAPABILITY: u32 =
2354 NWF_DEFINE_OID!(0x01, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2355pub const DOT11_WFD_DEVICE_CAPABILITY_CONFIG_REVISION_1: UCHAR = 1;
2356STRUCT!{struct DOT11_WFD_DEVICE_CAPABILITY_CONFIG {
2357 Header: NDIS_OBJECT_HEADER,
2358 bServiceDiscoveryEnabled: BOOLEAN,
2359 bClientDiscoverabilityEnabled: BOOLEAN,
2360 bConcurrentOperationSupported: BOOLEAN,
2361 bInfrastructureManagementEnabled: BOOLEAN,
2362 bDeviceLimitReached: BOOLEAN,
2363 bInvitationProcedureEnabled: BOOLEAN,
2364 WPSVersionsEnabled: ULONG,
2365}}
2366pub type PDOT11_WFD_DEVICE_CAPABILITY_CONFIG = *mut DOT11_WFD_DEVICE_CAPABILITY_CONFIG;
2367pub const OID_DOT11_WFD_GROUP_OWNER_CAPABILITY: u32 =
2368 NWF_DEFINE_OID!(0x02, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2369pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_1: UCHAR = 1;
2370STRUCT!{struct DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG {
2371 Header: NDIS_OBJECT_HEADER,
2372 bPersistentGroupEnabled: BOOLEAN,
2373 bIntraBSSDistributionSupported: BOOLEAN,
2374 bCrossConnectionSupported: BOOLEAN,
2375 bPersistentReconnectSupported: BOOLEAN,
2376 bGroupFormationEnabled: BOOLEAN,
2377 uMaximumGroupLimit: ULONG,
2378}}
2379pub type PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG = *mut DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG;
2380pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_2: UCHAR = 2;
2381STRUCT!{struct DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 {
2382 Header: NDIS_OBJECT_HEADER,
2383 bPersistentGroupEnabled: BOOLEAN,
2384 bIntraBSSDistributionSupported: BOOLEAN,
2385 bCrossConnectionSupported: BOOLEAN,
2386 bPersistentReconnectSupported: BOOLEAN,
2387 bGroupFormationEnabled: BOOLEAN,
2388 uMaximumGroupLimit: ULONG,
2389 bEapolKeyIpAddressAllocationSupported: BOOLEAN,
2390}}
2391pub type PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 =
2392 *mut DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2;
2393pub const OID_DOT11_WFD_DEVICE_INFO: u32 =
2394 NWF_DEFINE_OID!(0x03, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2395pub const DOT11_WFD_DEVICE_INFO_REVISION_1: UCHAR = 1;
2396STRUCT!{struct DOT11_WFD_DEVICE_INFO {
2397 Header: NDIS_OBJECT_HEADER,
2398 DeviceAddress: DOT11_MAC_ADDRESS,
2399 ConfigMethods: USHORT,
2400 PrimaryDeviceType: DOT11_WFD_DEVICE_TYPE,
2401 DeviceName: DOT11_WPS_DEVICE_NAME,
2402}}
2403pub type PDOT11_WFD_DEVICE_INFO = *mut DOT11_WFD_DEVICE_INFO;
2404pub const OID_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST: u32 =
2405 NWF_DEFINE_OID!(0x04, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2406pub const DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1: UCHAR = 1;
2407STRUCT!{struct DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST {
2408 Header: NDIS_OBJECT_HEADER,
2409 uNumOfEntries: ULONG,
2410 uTotalNumOfEntries: ULONG,
2411 SecondaryDeviceTypes: [DOT11_WFD_DEVICE_TYPE; 1],
2412}}
2413pub type PDOT11_WFD_SECONDARY_DEVICE_TYPE_LIST = *mut DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST;
2414pub const OID_DOT11_WFD_DISCOVER_REQUEST: u32 =
2417 NWF_DEFINE_OID!(0x05, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2418ENUM!{enum DOT11_WFD_DISCOVER_TYPE {
2419 dot11_wfd_discover_type_scan_only = 1,
2420 dot11_wfd_discover_type_find_only = 2,
2421 dot11_wfd_discover_type_auto = 3,
2422 dot11_wfd_discover_type_scan_social_channels = 4,
2423 dot11_wfd_discover_type_forced = 0x80000000,
2424}}
2425pub type PDOT11_WFD_DISCOVER_TYPE = *mut DOT11_WFD_DISCOVER_TYPE;
2426ENUM!{enum DOT11_WFD_SCAN_TYPE {
2427 dot11_wfd_scan_type_active = 1,
2428 dot11_wfd_scan_type_passive = 2,
2429 dot11_wfd_scan_type_auto = 3,
2430}}
2431pub type PDOT11_WFD_SCAN_TYPE = *mut DOT11_WFD_SCAN_TYPE;
2432pub const DISCOVERY_FILTER_BITMASK_DEVICE: UCHAR = 0x1;
2433pub const DISCOVERY_FILTER_BITMASK_GO: UCHAR = 0x2;
2434pub const DISCOVERY_FILTER_BITMASK_ANY: UCHAR = 0xF;
2435STRUCT!{struct DOT11_WFD_DISCOVER_DEVICE_FILTER {
2436 DeviceID: DOT11_MAC_ADDRESS,
2437 ucBitmask: UCHAR,
2438 GroupSSID: DOT11_SSID,
2439}}
2440pub type PDOT11_WFD_DISCOVER_DEVICE_FILTER = *mut DOT11_WFD_DISCOVER_DEVICE_FILTER;
2441pub const DOT11_WFD_DISCOVER_REQUEST_REVISION_1: UCHAR = 1;
2442STRUCT!{struct DOT11_WFD_DISCOVER_REQUEST {
2443 Header: NDIS_OBJECT_HEADER,
2444 DiscoverType: DOT11_WFD_DISCOVER_TYPE,
2445 ScanType: DOT11_WFD_SCAN_TYPE,
2446 uDiscoverTimeout: ULONG,
2447 uDeviceFilterListOffset: ULONG,
2448 uNumDeviceFilters: ULONG,
2449 uIEsOffset: ULONG,
2450 uIEsLength: ULONG,
2451 bForceScanLegacyNetworks: BOOLEAN,
2452}}
2453pub type PDOT11_WFD_DISCOVER_REQUEST = *mut DOT11_WFD_DISCOVER_REQUEST;
2454pub const OID_DOT11_WFD_ENUM_DEVICE_LIST: u32 =
2455 NWF_DEFINE_OID!(0x06, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2456pub const DOT11_DEVICE_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
2457STRUCT!{struct DOT11_WFD_DEVICE_ENTRY {
2458 uPhyId: ULONG,
2459 PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO,
2460 dot11BSSID: DOT11_MAC_ADDRESS,
2461 dot11BSSType: DOT11_BSS_TYPE,
2462 TransmitterAddress: DOT11_MAC_ADDRESS,
2463 lRSSI: LONG,
2464 uLinkQuality: ULONG,
2465 usBeaconPeriod: USHORT,
2466 ullTimestamp: ULONGLONG,
2467 ullBeaconHostTimestamp: ULONGLONG,
2468 ullProbeResponseHostTimestamp: ULONGLONG,
2469 usCapabilityInformation: USHORT,
2470 uBeaconIEsOffset: ULONG,
2471 uBeaconIEsLength: ULONG,
2472 uProbeResponseIEsOffset: ULONG,
2473 uProbeResponseIEsLength: ULONG,
2474}}
2475pub type PDOT11_WFD_DEVICE_ENTRY = *mut DOT11_WFD_DEVICE_ENTRY;
2476pub const OID_DOT11_WFD_LISTEN_STATE_DISCOVERABILITY: u32 =
2477 NWF_DEFINE_OID!(0x07, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2478pub const DOT11_WFD_DEVICE_NOT_DISCOVERABLE: i32 = 0;
2479pub const DOT11_WFD_DEVICE_AUTO_AVAILABILITY: i32 = 16;
2480pub const DOT11_WFD_DEVICE_HIGH_AVAILABILITY: i32 = 24;
2481pub const OID_DOT11_WFD_ADDITIONAL_IE: u32 =
2482 NWF_DEFINE_OID!(0x08, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2483pub const DOT11_WFD_ADDITIONAL_IE_REVISION_1: UCHAR = 1;
2484STRUCT!{struct DOT11_WFD_ADDITIONAL_IE {
2485 Header: NDIS_OBJECT_HEADER,
2486 uBeaconIEsOffset: ULONG,
2487 uBeaconIEsLength: ULONG,
2488 uProbeResponseIEsOffset: ULONG,
2489 uProbeResponseIEsLength: ULONG,
2490 uDefaultRequestIEsOffset: ULONG,
2491 uDefaultRequestIEsLength: ULONG,
2492}}
2493pub type PDOT11_WFD_ADDITIONAL_IE = *mut DOT11_WFD_ADDITIONAL_IE;
2494pub const OID_DOT11_WFD_FLUSH_DEVICE_LIST: u32 =
2495 NWF_DEFINE_OID!(0x09, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2496pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_REQUEST: u32 =
2497 NWF_DEFINE_OID!(0x0A, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2498pub const DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2499STRUCT!{struct DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS {
2500 Header: NDIS_OBJECT_HEADER,
2501 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2502 DialogToken: DOT11_DIALOG_TOKEN,
2503 uSendTimeout: ULONG,
2504 GroupOwnerIntent: DOT11_WFD_GO_INTENT,
2505 MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
2506 IntendedInterfaceAddress: DOT11_MAC_ADDRESS,
2507 GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
2508 uIEsOffset: ULONG,
2509 uIEsLength: ULONG,
2510}}
2511pub type PDOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS =
2512 *mut DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS;
2513pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_RESPONSE: u32 =
2514 NWF_DEFINE_OID!(0x0B, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2515pub const DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2516STRUCT!{struct DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS {
2517 Header: NDIS_OBJECT_HEADER,
2518 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2519 DialogToken: DOT11_DIALOG_TOKEN,
2520 RequestContext: PVOID,
2521 uSendTimeout: ULONG,
2522 Status: DOT11_WFD_STATUS_CODE,
2523 GroupOwnerIntent: DOT11_WFD_GO_INTENT,
2524 MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
2525 IntendedInterfaceAddress: DOT11_MAC_ADDRESS,
2526 GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
2527 GroupID: DOT11_WFD_GROUP_ID,
2528 bUseGroupID: BOOLEAN,
2529 uIEsOffset: ULONG,
2530 uIEsLength: ULONG,
2531}}
2532pub type PDOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS =
2533 *mut DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS;
2534pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_CONFIRMATION: u32 =
2535 NWF_DEFINE_OID!(0x0C, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2536pub const DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: UCHAR = 1;
2537STRUCT!{struct DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS {
2538 Header: NDIS_OBJECT_HEADER,
2539 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2540 DialogToken: DOT11_DIALOG_TOKEN,
2541 ResponseContext: PVOID,
2542 uSendTimeout: ULONG,
2543 Status: DOT11_WFD_STATUS_CODE,
2544 GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
2545 GroupID: DOT11_WFD_GROUP_ID,
2546 bUseGroupID: BOOLEAN,
2547 uIEsOffset: ULONG,
2548 uIEsLength: ULONG,
2549}}
2550pub type PDOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS =
2551 *mut DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS;
2552pub const OID_DOT11_WFD_SEND_INVITATION_REQUEST: u32 =
2553 NWF_DEFINE_OID!(0x0D, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2554STRUCT!{#[repr(packed)] struct DOT11_WFD_INVITATION_FLAGS {
2555 Bitfields: UCHAR,
2556}}
2557BITFIELD!{DOT11_WFD_INVITATION_FLAGS Bitfields: UCHAR [
2558 InvitationType set_InvitationType[0..1],
2559 Reserved set_Reserved[1..8],
2560]}
2561pub type PDOT11_WFD_INVITATION_FLAGS = *mut DOT11_WFD_INVITATION_FLAGS;
2562pub const DOT11_SEND_INVITATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2563STRUCT!{struct DOT11_SEND_INVITATION_REQUEST_PARAMETERS {
2564 Header: NDIS_OBJECT_HEADER,
2565 DialogToken: DOT11_DIALOG_TOKEN,
2566 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2567 uSendTimeout: ULONG,
2568 MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
2569 InvitationFlags: DOT11_WFD_INVITATION_FLAGS,
2570 GroupBSSID: DOT11_MAC_ADDRESS,
2571 bUseGroupBSSID: BOOLEAN,
2572 OperatingChannel: DOT11_WFD_CHANNEL,
2573 bUseSpecifiedOperatingChannel: BOOLEAN,
2574 GroupID: DOT11_WFD_GROUP_ID,
2575 bLocalGO: BOOLEAN,
2576 uIEsOffset: ULONG,
2577 uIEsLength: ULONG,
2578}}
2579pub type PDOT11_SEND_INVITATION_REQUEST_PARAMETERS =
2580 *mut DOT11_SEND_INVITATION_REQUEST_PARAMETERS;
2581pub const OID_DOT11_WFD_SEND_INVITATION_RESPONSE: u32 =
2582 NWF_DEFINE_OID!(0x0E, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2583pub const DOT11_SEND_INVITATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2584STRUCT!{struct DOT11_SEND_INVITATION_RESPONSE_PARAMETERS {
2585 Header: NDIS_OBJECT_HEADER,
2586 ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
2587 DialogToken: DOT11_DIALOG_TOKEN,
2588 RequestContext: PVOID,
2589 uSendTimeout: ULONG,
2590 Status: DOT11_WFD_STATUS_CODE,
2591 MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
2592 GroupBSSID: DOT11_MAC_ADDRESS,
2593 bUseGroupBSSID: BOOLEAN,
2594 OperatingChannel: DOT11_WFD_CHANNEL,
2595 bUseSpecifiedOperatingChannel: BOOLEAN,
2596 uIEsOffset: ULONG,
2597 uIEsLength: ULONG,
2598}}
2599pub type PDOT11_SEND_INVITATION_RESPONSE_PARAMETERS =
2600 *mut DOT11_SEND_INVITATION_RESPONSE_PARAMETERS;
2601pub const OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_REQUEST: u32 =
2602 NWF_DEFINE_OID!(0x0F, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2603pub const DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2604STRUCT!{struct DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS {
2605 Header: NDIS_OBJECT_HEADER,
2606 DialogToken: DOT11_DIALOG_TOKEN,
2607 PeerDeviceAddress: DOT11_MAC_ADDRESS,
2608 uSendTimeout: ULONG,
2609 GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
2610 GroupID: DOT11_WFD_GROUP_ID,
2611 bUseGroupID: BOOLEAN,
2612 uIEsOffset: ULONG,
2613 uIEsLength: ULONG,
2614}}
2615pub type PDOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS =
2616 *mut DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS;
2617pub const OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_RESPONSE: u32 =
2618 NWF_DEFINE_OID!(0x10, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2619pub const DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2620STRUCT!{struct DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS {
2621 Header: NDIS_OBJECT_HEADER,
2622 ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
2623 DialogToken: DOT11_DIALOG_TOKEN,
2624 RequestContext: PVOID,
2625 uSendTimeout: ULONG,
2626 uIEsOffset: ULONG,
2627 uIEsLength: ULONG,
2628}}
2629pub type PDOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS =
2630 *mut DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS;
2631pub const OID_DOT11_WFD_GET_DIALOG_TOKEN: u32 =
2632 NWF_DEFINE_OID!(0x11, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2633pub const OID_DOT11_WFD_STOP_DISCOVERY: u32 =
2634 NWF_DEFINE_OID!(0x12, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2635pub const OID_DOT11_WFD_ENABLE_HRDSSS_DEVICES: u32 =
2636 NWF_DEFINE_OID!(0x13, NWF_WFD_DEVICE_OID, NWF_OPTIONAL_OID);
2637pub const OID_DOT11_WFD_DEVICE_LISTEN_CHANNEL: u32 =
2638 NWF_DEFINE_OID!(0x14, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2639pub const DOT11_WFD_DEVICE_LISTEN_CHANNEL_REVISION_1: UCHAR = 1;
2640STRUCT!{struct DOT11_WFD_DEVICE_LISTEN_CHANNEL {
2641 Header: NDIS_OBJECT_HEADER,
2642 ChannelNumber: UCHAR,
2643}}
2644pub type PDOT11_WFD_DEVICE_LISTEN_CHANNEL = *mut DOT11_WFD_DEVICE_LISTEN_CHANNEL;
2645pub const OID_DOT11_WFD_DESIRED_GROUP_ID: u32 =
2646 NWF_DEFINE_OID!(0x01, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2647pub const OID_DOT11_WFD_START_GO_REQUEST: u32 =
2648 NWF_DEFINE_OID!(0x02, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2649pub const OID_DOT11_WFD_GROUP_START_PARAMETERS: u32 =
2650 NWF_DEFINE_OID!(0x03, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2651pub const DOT11_WFD_GROUP_START_PARAMETERS_REVISION_1: UCHAR = 1;
2652STRUCT!{struct DOT11_WFD_GROUP_START_PARAMETERS {
2653 Header: NDIS_OBJECT_HEADER,
2654 AdvertisedOperatingChannel: DOT11_WFD_CHANNEL,
2655}}
2656pub type PDOT11_WFD_GROUP_START_PARAMETERS = *mut DOT11_WFD_GROUP_START_PARAMETERS;
2657pub const OID_DOT11_WFD_CONNECT_TO_GROUP_REQUEST: u32 =
2658 NWF_DEFINE_OID!(0x04, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2659pub const OID_DOT11_WFD_DISCONNECT_FROM_GROUP_REQUEST: u32 =
2660 NWF_DEFINE_OID!(0x05, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2661pub const OID_DOT11_WFD_GROUP_JOIN_PARAMETERS: u32 =
2662 NWF_DEFINE_OID!(0x06, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2663pub const DOT11_WFD_GROUP_JOIN_PARAMETERS_REVISION_1: UCHAR = 1;
2664STRUCT!{struct DOT11_WFD_GROUP_JOIN_PARAMETERS {
2665 Header: NDIS_OBJECT_HEADER,
2666 GOOperatingChannel: DOT11_WFD_CHANNEL,
2667 GOConfigTime: ULONG,
2668 bInGroupFormation: BOOLEAN,
2669 bWaitForWPSReady: BOOLEAN,
2670}}
2671pub type PDOT11_WFD_GROUP_JOIN_PARAMETERS = *mut DOT11_WFD_GROUP_JOIN_PARAMETERS;
2672pub const NWF_POWER_SAVE_OID: u32 = 0x07;
2673pub const OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED: u32 =
2674 NWF_DEFINE_OID!(0x01, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
2675pub const DOT11_POWER_MGMT_AUTO_MODE_ENABLED_REVISION_1: UCHAR = 1;
2676STRUCT!{struct DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO {
2677 Header: NDIS_OBJECT_HEADER,
2678 bEnabled: BOOLEAN,
2679}}
2680pub type PDOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO = *mut DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO;
2681pub const OID_DOT11_POWER_MGMT_MODE_STATUS: u32 =
2682 NWF_DEFINE_OID!(0x02, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
2683ENUM!{enum DOT11_POWER_MODE_REASON {
2684 dot11_power_mode_reason_no_change = 0,
2685 dot11_power_mode_reason_noncompliant_AP = 1,
2686 dot11_power_mode_reason_legacy_WFD_device = 2,
2687 dot11_power_mode_reason_compliant_AP = 3,
2688 dot11_power_mode_reason_compliant_WFD_device = 4,
2689 dot11_power_mode_reason_others = 5,
2690}}
2691pub const DOT11_POWER_MGMT_MODE_STATUS_INFO_REVISION_1: UCHAR = 1;
2692STRUCT!{struct DOT11_POWER_MGMT_MODE_STATUS_INFO {
2693 Header: NDIS_OBJECT_HEADER,
2694 PowerSaveMode: DOT11_POWER_MODE,
2695 uPowerSaveLevel: ULONG,
2696 Reason: DOT11_POWER_MODE_REASON,
2697}}
2698pub type PDOT11_POWER_MGMT_MODE_STATUSINFO = *mut DOT11_POWER_MGMT_MODE_STATUS_INFO;
2699pub const OID_DOT11_OFFLOAD_NETWORK_LIST: u32 =
2700 NWF_DEFINE_OID!(0x03, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
2701pub const DOT11_MAX_CHANNEL_HINTS: usize = 4;
2702pub const DOT11_INVALID_CHANNEL_NUMBER: ULONG = 0;
2703STRUCT!{struct DOT11_CHANNEL_HINT {
2704 Dot11PhyType: DOT11_PHY_TYPE,
2705 uChannelNumber: ULONG,
2706}}
2707pub type PDOT11_CHANNEL_HINT = *mut DOT11_CHANNEL_HINT;
2708STRUCT!{struct DOT11_OFFLOAD_NETWORK {
2709 Ssid: DOT11_SSID,
2710 UnicastCipher: DOT11_CIPHER_ALGORITHM,
2711 AuthAlgo: DOT11_AUTH_ALGORITHM,
2712 Dot11ChannelHints: [DOT11_CHANNEL_HINT; DOT11_MAX_CHANNEL_HINTS],
2713}}
2714pub type PDOT11_OFFLOAD_NETWORK = *mut DOT11_OFFLOAD_NETWORK;
2715pub const DOT11_NLO_FLAG_STOP_NLO_INDICATION: ULONG = 0x00000001;
2716pub const DOT11_NLO_FLAG_SCAN_ON_AOAC_PLATFORM: ULONG = 0x00000002;
2717pub const DOT11_NLO_FLAG_SCAN_AT_SYSTEM_RESUME: ULONG = 0x00000004;
2718pub const DOT11_OFFLOAD_NETWORK_LIST_REVISION_1: UCHAR = 1;
2719STRUCT!{struct DOT11_OFFLOAD_NETWORK_LIST_INFO {
2720 Header: NDIS_OBJECT_HEADER,
2721 ulFlags: ULONG,
2722 FastScanPeriod: ULONG,
2723 FastScanIterations: ULONG,
2724 SlowScanPeriod: ULONG,
2725 uNumOfEntries: ULONG,
2726 offloadNetworkList: [DOT11_OFFLOAD_NETWORK; 1],
2727}}
2728pub type PDOT11_OFFLOAD_NETWORK_LIST_INFO = *mut DOT11_OFFLOAD_NETWORK_LIST_INFO;
2729pub const DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS_REVISION_1: UCHAR = 1;
2730STRUCT!{struct DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS {
2731 Header: NDIS_OBJECT_HEADER,
2732 Status: NDIS_STATUS,
2733}}
2734pub type PDOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS = *mut DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS;
2735pub const NWF_MANUFACTURING_OID: u32 = 0x08;
2736pub const OID_DOT11_MANUFACTURING_TEST: u32 =
2737 NWF_DEFINE_OID!(0x01, NWF_MANUFACTURING_OID, NWF_OPTIONAL_OID);
2738pub const DOT11_MANUFACTURING_TEST_REVISION_1: UCHAR = 1;
2739ENUM!{enum DOT11_MANUFACTURING_TEST_TYPE {
2740 dot11_manufacturing_test_unknown = 0,
2741 dot11_manufacturing_test_self_start = 1,
2742 dot11_manufacturing_test_self_query_result = 2,
2743 dot11_manufacturing_test_rx = 3,
2744 dot11_manufacturing_test_tx = 4,
2745 dot11_manufacturing_test_query_adc = 5,
2746 dot11_manufacturing_test_set_data = 6,
2747 dot11_manufacturing_test_query_data = 7,
2748 dot11_manufacturing_test_sleep = 8,
2749 dot11_manufacturing_test_awake = 9,
2750 dot11_manufacturing_test_IHV_start = 0x80000000,
2751 dot11_manufacturing_test_IHV_end = 0xffffffff,
2752}}
2753pub type PDOT11_MANUFACTURING_TEST_TYPE = *mut DOT11_MANUFACTURING_TEST_TYPE;
2754STRUCT!{struct DOT11_MANUFACTURING_TEST {
2755 dot11ManufacturingTestType: DOT11_MANUFACTURING_TEST_TYPE,
2756 uBufferLength: ULONG,
2757 ucBuffer: [UCHAR; 1],
2758}}
2759pub type PDOT11_MANUFACTURING_TEST = *mut DOT11_MANUFACTURING_TEST;
2760ENUM!{enum DOT11_MANUFACTURING_SELF_TEST_TYPE {
2761 DOT11_MANUFACTURING_SELF_TEST_TYPE_INTERFACE = 1,
2762 DOT11_MANUFACTURING_SELF_TEST_TYPE_RF_INTERFACE = 2,
2763 DOT11_MANUFACTURING_SELF_TEST_TYPE_BT_COEXISTENCE = 3,
2764}}
2765pub type PDOT11_MANUFACTURING_SELF_TEST_TYPE = *mut DOT11_MANUFACTURING_SELF_TEST_TYPE;
2766STRUCT!{struct DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS {
2767 SelfTestType: DOT11_MANUFACTURING_SELF_TEST_TYPE,
2768 uTestID: ULONG,
2769 uPinBitMask: ULONG,
2770 pvContext: PVOID,
2771 uBufferLength: ULONG,
2772 ucBufferIn: [UCHAR; 1],
2773}}
2774pub type PDOT11_MANUFACTURING_SELF_TEST_SET_PARAMS =
2775 *mut DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS;
2776STRUCT!{struct DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS {
2777 SelfTestType: DOT11_MANUFACTURING_SELF_TEST_TYPE,
2778 uTestID: ULONG,
2779 bResult: BOOLEAN,
2780 uPinFailedBitMask: ULONG,
2781 pvContext: PVOID,
2782 uBytesWrittenOut: ULONG,
2783 ucBufferOut: [UCHAR; 1],
2784}}
2785pub type PDOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS =
2786 *mut DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS;
2787ENUM!{enum DOT11_BAND {
2788 dot11_band_2p4g = 1,
2789 dot11_band_4p9g = 2,
2790 dot11_band_5g = 3,
2791}}
2792pub type PDOT11_BAND = *mut DOT11_BAND;
2793STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX {
2794 bEnabled: BOOLEAN,
2795 Dot11Band: DOT11_BAND,
2796 uChannel: ULONG,
2797 PowerLevel: LONG,
2798}}
2799pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_RX = *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX;
2800STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX {
2801 bEnable: BOOLEAN,
2802 bOpenLoop: BOOLEAN,
2803 Dot11Band: DOT11_BAND,
2804 uChannel: ULONG,
2805 uSetPowerLevel: ULONG,
2806 ADCPowerLevel: LONG,
2807}}
2808pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_TX = *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX;
2809STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC {
2810 Dot11Band: DOT11_BAND,
2811 uChannel: ULONG,
2812 ADCPowerLevel: LONG,
2813}}
2814pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC =
2815 *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC;
2816STRUCT!{struct DOT11_MANUFACTURING_TEST_SET_DATA {
2817 uKey: ULONG,
2818 uOffset: ULONG,
2819 uBufferLength: ULONG,
2820 ucBufferIn: [UCHAR; 1],
2821}}
2822pub type PDOT11_MANUFACTURING_TEST_SET_DATA = *mut DOT11_MANUFACTURING_TEST_SET_DATA;
2823STRUCT!{struct DOT11_MANUFACTURING_TEST_QUERY_DATA {
2824 uKey: ULONG,
2825 uOffset: ULONG,
2826 uBufferLength: ULONG,
2827 uBytesRead: ULONG,
2828 ucBufferOut: [UCHAR; 1],
2829}}
2830pub type PDOT11_MANUFACTURING_TEST_QUERY_DATA = *mut DOT11_MANUFACTURING_TEST_QUERY_DATA;
2831STRUCT!{struct DOT11_MANUFACTURING_TEST_SLEEP {
2832 uSleepTime: ULONG,
2833 pvContext: PVOID,
2834}}
2835pub type PDOT11_MANUFACTURING_TEST_SLEEP = *mut DOT11_MANUFACTURING_TEST_SLEEP;
2836ENUM!{enum DOT11_MANUFACTURING_CALLBACK_TYPE {
2837 dot11_manufacturing_callback_unknown = 0,
2838 dot11_manufacturing_callback_self_test_complete = 1,
2839 dot11_manufacturing_callback_sleep_complete = 2,
2840 dot11_manufacturing_callback_IHV_start = 0x80000000,
2841 dot11_manufacturing_callback_IHV_end = 0xffffffff,
2842}}
2843pub type PDOT11_MANUFACTURING_CALLBACK_TYPE = *mut DOT11_MANUFACTURING_CALLBACK_TYPE;
2844STRUCT!{struct DOT11_MANUFACTURING_CALLBACK_PARAMETERS {
2845 Header: NDIS_OBJECT_HEADER,
2846 dot11ManufacturingCallbackType: DOT11_MANUFACTURING_CALLBACK_TYPE,
2847 uStatus: ULONG,
2848 pvContext: PVOID,
2849}}
2850pub type PDOT11_MANUFACTURING_CALLBACK_PARAMETERS = *mut DOT11_MANUFACTURING_CALLBACK_PARAMETERS;
2851pub const DOT11_MANUFACTURING_CALLBACK_REVISION_1: UCHAR = 1;
2852pub const OID_DOT11_SET_FT_REASSOCIATION_PARAMETERS: u32 =
2853 NWF_DEFINE_OID!(0x168, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);