winapi_ui_automation/shared/
windot11.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! Definitions for native 802.11 miniport driver specifications.
7use 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;
2414// pub const DOT11_SIZEOF_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1: usize =
2415//    FIELD_OFFSET(DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST, SecondaryDeviceTypes);
2416pub 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);