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.
7 use shared::basetsd::UINT8;
8 use shared::minwindef::{UCHAR, ULONG, USHORT};
9 use 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 };
14 use shared::wlantypes::{
15 DOT11_AUTH_ALGORITHM, DOT11_AUTH_CIPHER_PAIR, DOT11_BSS_TYPE, DOT11_CIPHER_ALGORITHM,
16 DOT11_SSID, PDOT11_AUTH_CIPHER_PAIR,
17 };
18 use um::winnt::{BOOLEAN, HANDLE, LARGE_INTEGER, LONG, PVOID, ULONGLONG};
19 pub type DOT11_MAC_ADDRESS = [UCHAR; 6];
20 pub type PDOT11_MAC_ADDRESS = *mut DOT11_MAC_ADDRESS;
21 STRUCT!{struct DOT11_BSSID_LIST {
22 Header: NDIS_OBJECT_HEADER,
23 uNumOfEntries: ULONG,
24 uTotalNumOfEntries: ULONG,
25 BSSIDs: [DOT11_MAC_ADDRESS; 1],
26 }}
27 pub type PDOT11_BSSID_LIST = *mut DOT11_BSSID_LIST;
28 pub const DOT11_BSSID_LIST_REVISION_1: UCHAR = 1;
29 pub const DOT11_HESSID_LENGTH: usize = 6;
30 pub type DOT11_HESSID = [UCHAR; DOT11_HESSID_LENGTH];
31 pub type PDOT11_HESSID = *mut DOT11_HESSID;
32 ENUM!{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 }}
47 pub type PDOT11_PHY_TYPE = *mut DOT11_PHY_TYPE;
48 pub const DOT11_RATE_SET_MAX_LENGTH: usize = 126;
49 STRUCT!{struct DOT11_RATE_SET {
50 uRateSetLength: ULONG,
51 ucRateSet: [UCHAR; DOT11_RATE_SET_MAX_LENGTH],
52 }}
53 pub type PDOT11_RATE_SET = *mut DOT11_RATE_SET;
54 pub type DOT11_COUNTRY_OR_REGION_STRING = [UCHAR; 3];
55 pub type PDOT11_COUNTRY_OR_REGION_STRING = *mut DOT11_COUNTRY_OR_REGION_STRING;
56 pub type DOT11_DIALOG_TOKEN = UCHAR;
57 pub type DOT11_WFD_STATUS_CODE = UCHAR;
58 pub type DOT11_WFD_MINOR_REASON_CODE = UCHAR;
59 pub type DOT11_WFD_SERVICE_HASH = [UCHAR; 6];
60 pub const DOT11_WFD_SERVICE_NAME_MAX_LENGTH: usize = 255;
61 pub const DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH: usize = 21;
62 pub const DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH: usize = 63;
63 pub const DOT11_WFD_SERVICE_INFORMATION_MAX_LENGTH: usize = 65535;
64 pub const DOT11_MAX_REQUESTED_SERVICE_INFORMATION_LENGTH: usize = 255;
65 pub const DOT11_WFD_SESSION_INFO_MAX_LENGTH: usize = 144;
66 STRUCT!{struct DOT11_WFD_SESSION_INFO {
67 uSessionInfoLength: USHORT,
68 ucSessionInfo: [UCHAR; DOT11_WFD_SESSION_INFO_MAX_LENGTH],
69 }}
70 pub type PDOT11_WFD_SESSION_INFO = *mut DOT11_WFD_SESSION_INFO;
71 pub const NDIS_PACKET_TYPE_MEDIA_SPECIFIC_MASK: u32 = 0x0fff0000;
72 pub const NDIS_PACKET_TYPE_802_11_DIRECTED_DATA: u32 = NDIS_PACKET_TYPE_DIRECTED;
73 pub const NDIS_PACKET_TYPE_802_11_BROADCAST_DATA: u32 = NDIS_PACKET_TYPE_BROADCAST;
74 pub const NDIS_PACKET_TYPE_802_11_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_MULTICAST;
75 pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_ALL_MULTICAST;
76 pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_DATA: u32 = NDIS_PACKET_TYPE_PROMISCUOUS;
77 pub const NDIS_PACKET_TYPE_802_11_RAW_DATA: u32 = 0x00010000;
78 pub const NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT: u32 = 0x00020000;
79 pub const NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT: u32 = 0x00040000;
80 pub const NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT: u32 = 0x00080000;
81 pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT: u32 = 0x00100000;
82 pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT: u32 = 0x00200000;
83 pub const NDIS_PACKET_TYPE_802_11_RAW_MGMT: u32 = 0x00400000;
84 pub const NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL: u32 = 0x00800000;
85 pub const NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL: u32 = 0x01000000;
86 pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL: u32 = 0x02000000;
87 pub 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;
95 pub const DOT11_MAX_PDU_SIZE: i32 = 2346;
96 pub const DOT11_MIN_PDU_SIZE: i32 = 256;
97 pub const DOT11_MAX_NUM_DEFAULT_KEY: i32 = 4;
98 pub const DOT11_MAX_NUM_DEFAULT_KEY_MFP: i32 = DOT11_MAX_NUM_DEFAULT_KEY + 2;
99 pub const OID_DOT11_NDIS_START: u32 = 0x0D010300;
100 pub const NWF_MANDATORY_OID: u32 = 0x01;
101 pub const NWF_OPTIONAL_OID: u32 = 0x02;
102 pub const NWF_OPERATIONAL_OID: u32 = 0x01;
103 pub const NWF_STATISTICS_OID: u32 = 0x02;
104 #[inline]
NWF_DEFINE_OID(Seq: u32, o: u32, m: u32) -> u32105 pub fn NWF_DEFINE_OID(Seq: u32, o: u32, m: u32) -> u32 {
106 0x0E000000 | (o << 16) | (m << 8) | Seq
107 }
108 macro_rules! NWF_DEFINE_OID {
109 ($Seq:expr, $o:expr, $m:expr) => { 0x0E000000 | $o << 16 | $m << 8 | $Seq };
110 }
111 pub const OID_DOT11_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 0;
112 pub const DOT11_HW_WEP_SUPPORTED_TX: u32 = 0x00000001;
113 pub const DOT11_HW_WEP_SUPPORTED_RX: u32 = 0x00000002;
114 pub const DOT11_HW_FRAGMENTATION_SUPPORTED: u32 = 0x00000004;
115 pub const DOT11_HW_DEFRAGMENTATION_SUPPORTED: u32 = 0x00000008;
116 pub const DOT11_HW_MSDU_AUTH_SUPPORTED_TX: u32 = 0x00000010;
117 pub const DOT11_HW_MSDU_AUTH_SUPPORTED_RX: u32 = 0x00000020;
118 pub const DOT11_CONF_ALGO_WEP_RC4: u32 = 0x00000001;
119 pub const DOT11_CONF_ALGO_TKIP: u32 = 0x00000002;
120 pub const DOT11_AUTH_ALGO_MICHAEL: u32 = 0x00000001;
121 STRUCT!{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 }}
130 pub type PDOT11_OFFLOAD_CAPABILITY = *mut DOT11_OFFLOAD_CAPABILITY;
131 pub const OID_DOT11_CURRENT_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 1;
132 STRUCT!{struct DOT11_CURRENT_OFFLOAD_CAPABILITY {
133 uReserved: ULONG,
134 uFlags: ULONG,
135 }}
136 pub type PDOT11_CURRENT_OFFLOAD_CAPABILITY = *mut DOT11_CURRENT_OFFLOAD_CAPABILITY;
137 pub const OID_DOT11_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 2;
138 ENUM!{enum DOT11_OFFLOAD_TYPE {
139 dot11_offload_type_wep = 1,
140 dot11_offload_type_auth = 2,
141 }}
142 pub type PDOT11_OFFLOAD_TYPE = *mut DOT11_OFFLOAD_TYPE;
143 STRUCT!{struct DOT11_IV48_COUNTER {
144 uIV32Counter: ULONG,
145 usIV16Counter: USHORT,
146 }}
147 pub type PDOT11_IV48_COUNTER = *mut DOT11_IV48_COUNTER;
148 STRUCT!{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 }}
165 pub type PDOT11_WEP_OFFLOAD = *mut DOT11_WEP_OFFLOAD;
166 pub const OID_DOT11_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 3;
167 STRUCT!{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 }}
175 pub type PDOT11_WEP_UPLOAD = *mut DOT11_WEP_UPLOAD;
176 pub const OID_DOT11_DEFAULT_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 4;
177 ENUM!{enum DOT11_KEY_DIRECTION {
178 dot11_key_direction_both = 1,
179 dot11_key_direction_inbound = 2,
180 dot11_key_direction_outbound = 3,
181 }}
182 pub type PDOT11_KEY_DIRECTION = *mut DOT11_KEY_DIRECTION;
183 STRUCT!{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 }}
199 pub type PDOT11_DEFAULT_WEP_OFFLOAD = *mut DOT11_DEFAULT_WEP_OFFLOAD;
200 pub const OID_DOT11_DEFAULT_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 5;
201 STRUCT!{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 }}
209 pub type PDOT11_DEFAULT_WEP_UPLOAD = *mut DOT11_DEFAULT_WEP_UPLOAD;
210 pub const OID_DOT11_MPDU_MAX_LENGTH: u32 = OID_DOT11_NDIS_START + 6;
211 pub const OID_DOT11_OPERATION_MODE_CAPABILITY: u32 = OID_DOT11_NDIS_START + 7;
212 pub const DOT11_OPERATION_MODE_UNKNOWN: ULONG = 0x00000000;
213 pub const DOT11_OPERATION_MODE_STATION: ULONG = 0x00000001;
214 pub const DOT11_OPERATION_MODE_AP: ULONG = 0x00000002;
215 pub const DOT11_OPERATION_MODE_EXTENSIBLE_STATION: ULONG = 0x00000004;
216 pub const DOT11_OPERATION_MODE_EXTENSIBLE_AP: ULONG = 0x00000008;
217 pub const DOT11_OPERATION_MODE_WFD_DEVICE: ULONG = 0x00000010;
218 pub const DOT11_OPERATION_MODE_WFD_GROUP_OWNER: ULONG = 0x00000020;
219 pub const DOT11_OPERATION_MODE_WFD_CLIENT: ULONG = 0x00000040;
220 pub const DOT11_OPERATION_MODE_MANUFACTURING: ULONG = 0x40000000;
221 pub const DOT11_OPERATION_MODE_NETWORK_MONITOR: ULONG = 0x80000000;
222 STRUCT!{struct DOT11_OPERATION_MODE_CAPABILITY {
223 uReserved: ULONG,
224 uMajorVersion: ULONG,
225 uMinorVersion: ULONG,
226 uNumOfTXBuffers: ULONG,
227 uNumOfRXBuffers: ULONG,
228 uOpModeCapability: ULONG,
229 }}
230 pub type PDOT11_OPERATION_MODE_CAPABILITY = *mut DOT11_OPERATION_MODE_CAPABILITY;
231 pub const OID_DOT11_CURRENT_OPERATION_MODE: u32 = OID_DOT11_NDIS_START + 8;
232 STRUCT!{struct DOT11_CURRENT_OPERATION_MODE {
233 uReserved: ULONG,
234 uCurrentOpMode: ULONG,
235 }}
236 pub type PDOT11_CURRENT_OPERATION_MODE = *mut DOT11_CURRENT_OPERATION_MODE;
237 pub const OID_DOT11_CURRENT_PACKET_FILTER: u32 = OID_DOT11_NDIS_START + 9;
238 pub const DOT11_PACKET_TYPE_DIRECTED_CTRL: u32 = 0x00000001;
239 pub const DOT11_PACKET_TYPE_DIRECTED_MGMT: u32 = 0x00000002;
240 pub const DOT11_PACKET_TYPE_DIRECTED_DATA: u32 = 0x00000004;
241 pub const DOT11_PACKET_TYPE_MULTICAST_CTRL: u32 = 0x00000008;
242 pub const DOT11_PACKET_TYPE_MULTICAST_MGMT: u32 = 0x00000010;
243 pub const DOT11_PACKET_TYPE_MULTICAST_DATA: u32 = 0x00000020;
244 pub const DOT11_PACKET_TYPE_BROADCAST_CTRL: u32 = 0x00000040;
245 pub const DOT11_PACKET_TYPE_BROADCAST_MGMT: u32 = 0x00000080;
246 pub const DOT11_PACKET_TYPE_BROADCAST_DATA: u32 = 0x00000100;
247 pub const DOT11_PACKET_TYPE_PROMISCUOUS_CTRL: u32 = 0x00000200;
248 pub const DOT11_PACKET_TYPE_PROMISCUOUS_MGMT: u32 = 0x00000400;
249 pub const DOT11_PACKET_TYPE_PROMISCUOUS_DATA: u32 = 0x00000800;
250 pub const DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL: u32 = 0x00001000;
251 pub const DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT: u32 = 0x00002000;
252 pub const DOT11_PACKET_TYPE_ALL_MULTICAST_DATA: u32 = 0x00004000;
253 pub 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);
261 pub const OID_DOT11_ATIM_WINDOW: u32 = OID_DOT11_NDIS_START + 10;
262 pub const OID_DOT11_SCAN_REQUEST: u32 = OID_DOT11_NDIS_START + 11;
263 ENUM!{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 }}
269 pub type PDOT11_SCAN_TYPE = *mut DOT11_SCAN_TYPE;
270 STRUCT!{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 }}
285 pub type PDOT11_SCAN_REQUEST = *mut DOT11_SCAN_REQUEST;
286 ENUM!{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 }}
291 pub type PCH_DESCRIPTION_TYPE = *mut CH_DESCRIPTION_TYPE;
292 STRUCT!{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 }}
302 pub type PDOT11_PHY_TYPE_INFO = *mut DOT11_PHY_TYPE_INFO;
303 STRUCT!{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 }}
319 pub type PDOT11_SCAN_REQUEST_V2 = *mut DOT11_SCAN_REQUEST_V2;
320 pub const OID_DOT11_CURRENT_PHY_TYPE: u32 = OID_DOT11_NDIS_START + 12;
321 STRUCT!{struct DOT11_PHY_TYPE_LIST {
322 Header: NDIS_OBJECT_HEADER,
323 uNumOfEntries: ULONG,
324 uTotalNumOfEntries: ULONG,
325 dot11PhyType: [DOT11_PHY_TYPE; 1],
326 }}
327 pub type PDOT11_PHY_TYPE_LIST = *mut DOT11_PHY_TYPE_LIST;
328 pub const DOT11_PHY_TYPE_LIST_REVISION_1: UCHAR = 1;
329 pub const OID_DOT11_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 13;
330 pub const DOT11_CAPABILITY_INFO_ESS: USHORT = 0x0001;
331 pub const DOT11_CAPABILITY_INFO_IBSS: USHORT = 0x0002;
332 pub const DOT11_CAPABILITY_INFO_CF_POLLABLE: USHORT = 0x0004;
333 pub const DOT11_CAPABILITY_INFO_CF_POLL_REQ: USHORT = 0x0008;
334 pub const DOT11_CAPABILITY_INFO_PRIVACY: USHORT = 0x0010;
335 pub const DOT11_CAPABILITY_SHORT_PREAMBLE: USHORT = 0x0020;
336 pub const DOT11_CAPABILITY_PBCC: USHORT = 0x0040;
337 pub const DOT11_CAPABILITY_CHANNEL_AGILITY: USHORT = 0x0080;
338 pub const DOT11_CAPABILITY_SHORT_SLOT_TIME: USHORT = 0x0400;
339 pub const DOT11_CAPABILITY_DSSSOFDM: USHORT = 0x2000;
340 STRUCT!{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 }}
350 pub type PDOT11_BSS_DESCRIPTION = *mut DOT11_BSS_DESCRIPTION;
351 STRUCT!{struct DOT11_JOIN_REQUEST {
352 uJoinFailureTimeout: ULONG,
353 OperationalRateSet: DOT11_RATE_SET,
354 uChCenterFrequency: ULONG,
355 dot11BSSDescription: DOT11_BSS_DESCRIPTION,
356 }}
357 pub type PDOT11_JOIN_REQUEST = *mut DOT11_JOIN_REQUEST;
358 pub const OID_DOT11_START_REQUEST: u32 = OID_DOT11_NDIS_START + 14;
359 STRUCT!{struct DOT11_START_REQUEST {
360 uStartFailureTimeout: ULONG,
361 OperationalRateSet: DOT11_RATE_SET,
362 uChCenterFrequency: ULONG,
363 dot11BSSDescription: DOT11_BSS_DESCRIPTION,
364 }}
365 pub type PDOT11_START_REQUEST = *mut DOT11_START_REQUEST;
366 pub const OID_DOT11_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 15;
367 ENUM!{enum DOT11_UPDATE_IE_OP {
368 dot11_update_ie_op_create_replace = 1,
369 dot11_update_ie_op_delete = 2,
370 }}
371 pub type PDOT11_UPDATE_IE_OP = *mut DOT11_UPDATE_IE_OP;
372 STRUCT!{struct DOT11_UPDATE_IE {
373 dot11UpdateIEOp: DOT11_UPDATE_IE_OP,
374 uBufferLength: ULONG,
375 ucBuffer: [UCHAR; 1],
376 }}
377 pub type PDOT11_UPDATE_IE = *mut DOT11_UPDATE_IE;
378 pub const OID_DOT11_RESET_REQUEST: u32 = OID_DOT11_NDIS_START + 16;
379 ENUM!{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 }}
384 pub type PDOT11_RESET_TYPE = *mut DOT11_RESET_TYPE;
385 STRUCT!{struct DOT11_RESET_REQUEST {
386 dot11ResetType: DOT11_RESET_TYPE,
387 dot11MacAddress: DOT11_MAC_ADDRESS,
388 bSetDefaultMIB: BOOLEAN,
389 }}
390 pub type PDOT11_RESET_REQUEST = *mut DOT11_RESET_REQUEST;
391 pub const OID_DOT11_NIC_POWER_STATE: u32 = OID_DOT11_NDIS_START + 17;
392 pub const OID_DOT11_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 18;
393 STRUCT!{struct DOT11_OPTIONAL_CAPABILITY {
394 uReserved: ULONG,
395 bDot11PCF: BOOLEAN,
396 bDot11PCFMPDUTransferToPC: BOOLEAN,
397 bStrictlyOrderedServiceClass: BOOLEAN,
398 }}
399 pub type PDOT11_OPTIONAL_CAPABILITY = *mut DOT11_OPTIONAL_CAPABILITY;
400 pub const OID_DOT11_CURRENT_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 19;
401 STRUCT!{struct DOT11_CURRENT_OPTIONAL_CAPABILITY {
402 uReserved: ULONG,
403 bDot11CFPollable: BOOLEAN,
404 bDot11PCF: BOOLEAN,
405 bDot11PCFMPDUTransferToPC: BOOLEAN,
406 bStrictlyOrderedServiceClass: BOOLEAN,
407 }}
408 pub type PDOT11_CURRENT_OPTIONAL_CAPABILITY = *mut DOT11_CURRENT_OPTIONAL_CAPABILITY;
409 pub const OID_DOT11_STATION_ID: u32 = OID_DOT11_NDIS_START + 20;
410 pub const OID_DOT11_MEDIUM_OCCUPANCY_LIMIT: u32 = OID_DOT11_NDIS_START + 21;
411 pub const OID_DOT11_CF_POLLABLE: u32 = OID_DOT11_NDIS_START + 22;
412 pub const OID_DOT11_CFP_PERIOD: u32 = OID_DOT11_NDIS_START + 23;
413 pub const OID_DOT11_CFP_MAX_DURATION: u32 = OID_DOT11_NDIS_START + 24;
414 pub const OID_DOT11_POWER_MGMT_MODE: u32 = OID_DOT11_NDIS_START + 25;
415 ENUM!{enum DOT11_POWER_MODE {
416 dot11_power_mode_unknown = 0,
417 dot11_power_mode_active = 1,
418 dot11_power_mode_powersave = 2,
419 }}
420 pub type PDOT11_POWER_MODE = *mut DOT11_POWER_MODE;
421 pub const DOT11_POWER_SAVE_LEVEL_MAX_PSP: ULONG = 1;
422 pub const DOT11_POWER_SAVE_LEVEL_FAST_PSP: ULONG = 2;
423 STRUCT!{struct DOT11_POWER_MGMT_MODE {
424 dot11PowerMode: DOT11_POWER_MODE,
425 uPowerSaveLevel: ULONG,
426 usListenInterval: USHORT,
427 usAID: USHORT,
428 bReceiveDTIMs: BOOLEAN,
429 }}
430 pub type PDOT11_POWER_MGMT_MODE = *mut DOT11_POWER_MGMT_MODE;
431 pub const OID_DOT11_OPERATIONAL_RATE_SET: u32 = OID_DOT11_NDIS_START + 26;
432 pub const OID_DOT11_BEACON_PERIOD: u32 = OID_DOT11_NDIS_START + 27;
433 pub const OID_DOT11_DTIM_PERIOD: u32 = OID_DOT11_NDIS_START + 28;
434 pub const OID_DOT11_WEP_ICV_ERROR_COUNT: u32 = OID_DOT11_NDIS_START + 29;
435 pub const OID_DOT11_MAC_ADDRESS: u32 = OID_DOT11_NDIS_START + 30;
436 pub const OID_DOT11_RTS_THRESHOLD: u32 = OID_DOT11_NDIS_START + 31;
437 pub const OID_DOT11_SHORT_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 32;
438 pub const OID_DOT11_LONG_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 33;
439 pub const OID_DOT11_FRAGMENTATION_THRESHOLD: u32 = OID_DOT11_NDIS_START + 34;
440 pub const OID_DOT11_MAX_TRANSMIT_MSDU_LIFETIME: u32 = OID_DOT11_NDIS_START + 35;
441 pub const OID_DOT11_MAX_RECEIVE_LIFETIME: u32 = OID_DOT11_NDIS_START + 36;
442 pub const OID_DOT11_COUNTERS_ENTRY: u32 = OID_DOT11_NDIS_START + 37;
443 STRUCT!{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 }}
458 pub type PDOT11_COUNTERS_ENTRY = *mut DOT11_COUNTERS_ENTRY;
459 pub const OID_DOT11_SUPPORTED_PHY_TYPES: u32 = OID_DOT11_NDIS_START + 38;
460 STRUCT!{struct DOT11_SUPPORTED_PHY_TYPES {
461 uNumOfEntries: ULONG,
462 uTotalNumOfEntries: ULONG,
463 dot11PHYType: [DOT11_PHY_TYPE; 1],
464 }}
465 pub type PDOT11_SUPPORTED_PHY_TYPES = *mut DOT11_SUPPORTED_PHY_TYPES;
466 pub const OID_DOT11_CURRENT_REG_DOMAIN: u32 = OID_DOT11_NDIS_START + 39;
467 pub const DOT11_REG_DOMAIN_OTHER: ULONG = 0x00000000;
468 pub const DOT11_REG_DOMAIN_FCC: ULONG = 0x00000010;
469 pub const DOT11_REG_DOMAIN_DOC: ULONG = 0x00000020;
470 pub const DOT11_REG_DOMAIN_ETSI: ULONG = 0x00000030;
471 pub const DOT11_REG_DOMAIN_SPAIN: ULONG = 0x00000031;
472 pub const DOT11_REG_DOMAIN_FRANCE: ULONG = 0x00000032;
473 pub const DOT11_REG_DOMAIN_MKK: ULONG = 0x00000040;
474 pub const OID_DOT11_TEMP_TYPE: u32 = OID_DOT11_NDIS_START + 40;
475 ENUM!{enum DOT11_TEMP_TYPE {
476 dot11_temp_type_unknown = 0,
477 dot11_temp_type_1 = 1,
478 dot11_temp_type_2 = 2,
479 }}
480 pub type PDOT11_TEMP_TYPE = *mut DOT11_TEMP_TYPE;
481 pub const OID_DOT11_CURRENT_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 41;
482 pub const OID_DOT11_DIVERSITY_SUPPORT: u32 = OID_DOT11_NDIS_START + 42;
483 ENUM!{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 }}
489 pub type PDOT11_DIVERSITY_SUPPORT = *mut DOT11_DIVERSITY_SUPPORT;
490 pub const OID_DOT11_CURRENT_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 43;
491 pub const OID_DOT11_SUPPORTED_POWER_LEVELS: u32 = OID_DOT11_NDIS_START + 44;
492 STRUCT!{struct DOT11_SUPPORTED_POWER_LEVELS {
493 uNumOfSupportedPowerLevels: ULONG,
494 uTxPowerLevelValues: [ULONG; 8],
495 }}
496 pub type PDOT11_SUPPORTED_POWER_LEVELS = *mut DOT11_SUPPORTED_POWER_LEVELS;
497 pub const OID_DOT11_CURRENT_TX_POWER_LEVEL: u32 = OID_DOT11_NDIS_START + 45;
498 pub const OID_DOT11_HOP_TIME: u32 = OID_DOT11_NDIS_START + 46;
499 pub const OID_DOT11_CURRENT_CHANNEL_NUMBER: u32 = OID_DOT11_NDIS_START + 47;
500 pub const OID_DOT11_MAX_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 48;
501 pub const OID_DOT11_CURRENT_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 49;
502 pub const OID_DOT11_CURRENT_SET: u32 = OID_DOT11_NDIS_START + 50;
503 pub const OID_DOT11_CURRENT_PATTERN: u32 = OID_DOT11_NDIS_START + 51;
504 pub const OID_DOT11_CURRENT_INDEX: u32 = OID_DOT11_NDIS_START + 52;
505 pub const OID_DOT11_CURRENT_CHANNEL: u32 = OID_DOT11_NDIS_START + 53;
506 pub const OID_DOT11_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 54;
507 pub const DOT11_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
508 pub const DOT11_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
509 pub const DOT11_CCA_MODE_ED_and_CS: ULONG = 0x00000004;
510 pub const DOT11_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
511 pub const DOT11_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
512 pub const OID_DOT11_CURRENT_CCA_MODE: u32 = OID_DOT11_NDIS_START + 55;
513 pub const OID_DOT11_ED_THRESHOLD: u32 = OID_DOT11_NDIS_START + 56;
514 pub const OID_DOT11_CCA_WATCHDOG_TIMER_MAX: u32 = OID_DOT11_NDIS_START + 57;
515 pub const OID_DOT11_CCA_WATCHDOG_COUNT_MAX: u32 = OID_DOT11_NDIS_START + 58;
516 pub const OID_DOT11_CCA_WATCHDOG_TIMER_MIN: u32 = OID_DOT11_NDIS_START + 59;
517 pub const OID_DOT11_CCA_WATCHDOG_COUNT_MIN: u32 = OID_DOT11_NDIS_START + 60;
518 pub const OID_DOT11_REG_DOMAINS_SUPPORT_VALUE: u32 = OID_DOT11_NDIS_START + 61;
519 STRUCT!{struct DOT11_REG_DOMAIN_VALUE {
520 uRegDomainsSupportIndex: ULONG,
521 uRegDomainsSupportValue: ULONG,
522 }}
523 pub type PDOT11_REG_DOMAIN_VALUE = *mut DOT11_REG_DOMAIN_VALUE;
524 STRUCT!{struct DOT11_REG_DOMAINS_SUPPORT_VALUE {
525 uNumOfEntries: ULONG,
526 uTotalNumOfEntries: ULONG,
527 dot11RegDomainValue: [DOT11_REG_DOMAIN_VALUE; 1],
528 }}
529 pub type PDOT11_REG_DOMAINS_SUPPORT_VALUE = *mut DOT11_REG_DOMAINS_SUPPORT_VALUE;
530 pub const OID_DOT11_SUPPORTED_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 62;
531 STRUCT!{struct DOT11_SUPPORTED_ANTENNA {
532 uAntennaListIndex: ULONG,
533 bSupportedAntenna: BOOLEAN,
534 }}
535 pub type PDOT11_SUPPORTED_ANTENNA = *mut DOT11_SUPPORTED_ANTENNA;
536 STRUCT!{struct DOT11_SUPPORTED_ANTENNA_LIST {
537 uNumOfEntries: ULONG,
538 uTotalNumOfEntries: ULONG,
539 dot11SupportedAntenna: [DOT11_SUPPORTED_ANTENNA; 1],
540 }}
541 pub type PDOT11_SUPPORTED_ANTENNA_LIST = *mut DOT11_SUPPORTED_ANTENNA_LIST;
542 pub const OID_DOT11_SUPPORTED_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 63;
543 pub const OID_DOT11_DIVERSITY_SELECTION_RX: u32 = OID_DOT11_NDIS_START + 64;
544 STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX {
545 uAntennaListIndex: ULONG,
546 bDiversitySelectionRX: BOOLEAN,
547 }}
548 pub type PDOT11_DIVERSITY_SELECTION_RX = *mut DOT11_DIVERSITY_SELECTION_RX;
549 STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX_LIST {
550 uNumOfEntries: ULONG,
551 uTotalNumOfEntries: ULONG,
552 dot11DiversitySelectionRx: [DOT11_DIVERSITY_SELECTION_RX; 1],
553 }}
554 pub type PDOT11_DIVERSITY_SELECTION_RX_LIST = *mut DOT11_DIVERSITY_SELECTION_RX_LIST;
555 pub const OID_DOT11_SUPPORTED_DATA_RATES_VALUE: u32 = OID_DOT11_NDIS_START + 65;
556 pub const MAX_NUM_SUPPORTED_RATES: usize = 8;
557 pub const MAX_NUM_SUPPORTED_RATES_V2: usize = 255;
558 STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE {
559 ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
560 ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
561 }}
562 pub type PDOT11_SUPPORTED_DATA_RATES_VALUE = *mut DOT11_SUPPORTED_DATA_RATES_VALUE;
563 STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE_V2 {
564 ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
565 ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
566 }}
567 pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V2 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
568 pub type DOT11_SUPPORTED_DATA_RATES_VALUE_V1 = DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
569 pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V1 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
570 pub const OID_DOT11_CURRENT_FREQUENCY: u32 = OID_DOT11_NDIS_START + 66;
571 pub const OID_DOT11_TI_THRESHOLD: u32 = OID_DOT11_NDIS_START + 67;
572 pub const OID_DOT11_FREQUENCY_BANDS_SUPPORTED: u32 = OID_DOT11_NDIS_START + 68;
573 pub const DOT11_FREQUENCY_BANDS_LOWER: u32 = 0x00000001;
574 pub const DOT11_FREQUENCY_BANDS_MIDDLE: u32 = 0x00000002;
575 pub const DOT11_FREQUENCY_BANDS_UPPER: u32 = 0x00000004;
576 pub const OID_DOT11_SHORT_PREAMBLE_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 69;
577 pub const OID_DOT11_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 70;
578 pub const OID_DOT11_CHANNEL_AGILITY_PRESENT: u32 = OID_DOT11_NDIS_START + 71;
579 pub const OID_DOT11_CHANNEL_AGILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 72;
580 pub const OID_DOT11_HR_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 73;
581 pub const DOT11_HR_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
582 pub const DOT11_HR_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
583 pub const DOT11_HR_CCA_MODE_CS_AND_ED: ULONG = 0x00000004;
584 pub const DOT11_HR_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
585 pub const DOT11_HR_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
586 pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 74;
587 pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 75;
588 pub const OID_DOT11_COUNTRY_STRING: u32 = OID_DOT11_NDIS_START + 76;
589 STRUCT!{struct DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY {
590 uMultiDomainCapabilityIndex: ULONG,
591 uFirstChannelNumber: ULONG,
592 uNumberOfChannels: ULONG,
593 lMaximumTransmitPowerLevel: LONG,
594 }}
595 pub type PDOT11_MULTI_DOMAIN_CAPABILITY_ENTRY = *mut DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY;
596 STRUCT!{struct DOT11_MD_CAPABILITY_ENTRY_LIST {
597 uNumOfEntries: ULONG,
598 uTotalNumOfEntries: ULONG,
599 dot11MDCapabilityEntry: [DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY; 1],
600 }}
601 pub type PDOT11_MD_CAPABILITY_ENTRY_LIST = *mut DOT11_MD_CAPABILITY_ENTRY_LIST;
602 pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY: u32 = OID_DOT11_NDIS_START + 77;
603 pub const OID_DOT11_EHCC_PRIME_RADIX: u32 = OID_DOT11_NDIS_START + 78;
604 pub const OID_DOT11_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX: u32 = OID_DOT11_NDIS_START + 79;
605 pub const OID_DOT11_EHCC_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 80;
606 pub const OID_DOT11_EHCC_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 81;
607 pub const OID_DOT11_HOP_ALGORITHM_ADOPTED: u32 = OID_DOT11_NDIS_START + 82;
608 ENUM!{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 }}
613 pub type PDOT11_HOP_ALGO_ADOPTED = *mut DOT11_HOP_ALGO_ADOPTED;
614 pub const OID_DOT11_RANDOM_TABLE_FLAG: u32 = OID_DOT11_NDIS_START + 83;
615 pub const OID_DOT11_NUMBER_OF_HOPPING_SETS: u32 = OID_DOT11_NDIS_START + 84;
616 pub const OID_DOT11_HOP_MODULUS: u32 = OID_DOT11_NDIS_START + 85;
617 pub const OID_DOT11_HOP_OFFSET: u32 = OID_DOT11_NDIS_START + 86;
618 pub const OID_DOT11_HOPPING_PATTERN: u32 = OID_DOT11_NDIS_START + 87;
619 STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY {
620 uHoppingPatternIndex: ULONG,
621 uRandomTableFieldNumber: ULONG,
622 }}
623 pub type PDOT11_HOPPING_PATTERN_ENTRY = *mut DOT11_HOPPING_PATTERN_ENTRY;
624 STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY_LIST {
625 uNumOfEntries: ULONG,
626 uTotalNumOfEntries: ULONG,
627 dot11HoppingPatternEntry: [DOT11_HOPPING_PATTERN_ENTRY; 1],
628 }}
629 pub type PDOT11_HOPPING_PATTERN_ENTRY_LIST = *mut DOT11_HOPPING_PATTERN_ENTRY_LIST;
630 pub const OID_DOT11_RANDOM_TABLE_FIELD_NUMBER: u32 = OID_DOT11_NDIS_START + 88;
631 pub const OID_DOT11_WPA_TSC: u32 = OID_DOT11_NDIS_START + 89;
632 STRUCT!{struct DOT11_WPA_TSC {
633 uReserved: ULONG,
634 dot11OffloadType: DOT11_OFFLOAD_TYPE,
635 hOffload: HANDLE,
636 dot11IV48Counter: DOT11_IV48_COUNTER,
637 }}
638 pub type PDOT11_WPA_TSC = *mut DOT11_WPA_TSC;
639 pub const OID_DOT11_RSSI_RANGE: u32 = OID_DOT11_NDIS_START + 90;
640 STRUCT!{struct DOT11_RSSI_RANGE {
641 dot11PhyType: DOT11_PHY_TYPE,
642 uRSSIMin: ULONG,
643 uRSSIMax: ULONG,
644 }}
645 pub type PDOT11_RSSI_RANGE = *mut DOT11_RSSI_RANGE;
646 pub const OID_DOT11_RF_USAGE: u32 = OID_DOT11_NDIS_START + 91;
647 pub const OID_DOT11_NIC_SPECIFIC_EXTENSION: u32 = OID_DOT11_NDIS_START + 92;
648 STRUCT!{struct DOT11_NIC_SPECIFIC_EXTENSION {
649 uBufferLength: ULONG,
650 uTotalBufferLength: ULONG,
651 ucBuffer: [UCHAR; 1],
652 }}
653 pub type PDOT11_NIC_SPECIFIC_EXTENSION = *mut DOT11_NIC_SPECIFIC_EXTENSION;
654 pub const OID_DOT11_AP_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 93;
655 STRUCT!{struct DOT11_AP_JOIN_REQUEST {
656 uJoinFailureTimeout: ULONG,
657 OperationalRateSet: DOT11_RATE_SET,
658 uChCenterFrequency: ULONG,
659 dot11BSSDescription: DOT11_BSS_DESCRIPTION,
660 }}
661 pub type PDOT11_AP_JOIN_REQUEST = *mut DOT11_AP_JOIN_REQUEST;
662 pub const OID_DOT11_ERP_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 94;
663 pub const OID_DOT11_ERP_PBCC_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 95;
664 pub const OID_DOT11_DSSS_OFDM_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 96;
665 pub const OID_DOT11_DSSS_OFDM_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 97;
666 pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 98;
667 pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 99;
668 pub const OID_DOT11_MAX_MAC_ADDRESS_STATES: u32 = OID_DOT11_NDIS_START + 100;
669 pub const OID_DOT11_RECV_SENSITIVITY_LIST: u32 = OID_DOT11_NDIS_START + 101;
670 STRUCT!{struct DOT11_RECV_SENSITIVITY {
671 ucDataRate: UCHAR,
672 lRSSIMin: LONG,
673 lRSSIMax: LONG,
674 }}
675 pub type PDOT11_RECV_SENSITIVITY = *mut DOT11_RECV_SENSITIVITY;
676 UNION!{union DOT11_RECV_SENSITIVITY_LIST_u {
677 [u32; 1],
678 dot11PhyType dot11PhyType_mut: DOT11_PHY_TYPE,
679 uPhyId uPhyId_mut: ULONG,
680 }}
681 STRUCT!{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 }}
687 pub type PDOT11_RECV_SENSITIVITY_LIST = *mut DOT11_RECV_SENSITIVITY_LIST;
688 pub const OID_DOT11_WME_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 102;
689 pub const OID_DOT11_WME_ENABLED: u32 = OID_DOT11_NDIS_START + 103;
690 pub const OID_DOT11_WME_AC_PARAMETERS: u32 = OID_DOT11_NDIS_START + 104;
691 ENUM!{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 }}
698 pub type PDOT11_AC_PARAM = *mut DOT11_AC_PARAM;
699 STRUCT!{struct DOT11_WME_AC_PARAMETERS {
700 ucAccessCategoryIndex: UCHAR,
701 ucAIFSN: UCHAR,
702 ucECWmin: UCHAR,
703 ucECWmax: UCHAR,
704 usTXOPLimit: USHORT,
705 }}
706 pub type PDOT11_WME_AC_PARAMETERS = *mut DOT11_WME_AC_PARAMETERS;
707 STRUCT!{struct DOT11_WME_AC_PARAMETERS_LIST {
708 uNumOfEntries: ULONG,
709 uTotalNumOfEntries: ULONG,
710 dot11WMEACParameters: [DOT11_WME_AC_PARAMETERS; 1],
711 }}
712 pub type PDOT11_WME_AC_PARAMETERS_LIST = *mut DOT11_WME_AC_PARAMETERS_LIST;
713 pub const OID_DOT11_WME_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 105;
714 STRUCT!{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 }}
722 pub type PDOT11_WME_UPDATE_IE = *mut DOT11_WME_UPDATE_IE;
723 pub const OID_DOT11_QOS_TX_QUEUES_SUPPORTED: u32 = OID_DOT11_NDIS_START + 106;
724 pub const OID_DOT11_QOS_TX_DURATION: u32 = OID_DOT11_NDIS_START + 107;
725 STRUCT!{struct DOT11_QOS_TX_DURATION {
726 uNominalMSDUSize: ULONG,
727 uMinPHYRate: ULONG,
728 uDuration: ULONG,
729 }}
730 pub type PDOT11_QOS_TX_DURATION = *mut DOT11_QOS_TX_DURATION;
731 pub const OID_DOT11_QOS_TX_MEDIUM_TIME: u32 = OID_DOT11_NDIS_START + 108;
732 STRUCT!{struct DOT11_QOS_TX_MEDIUM_TIME {
733 dot11PeerAddress: DOT11_MAC_ADDRESS,
734 ucQoSPriority: UCHAR,
735 uMediumTimeAdmited: ULONG,
736 }}
737 pub type PDOT11_QOS_TX_MEDIUM_TIME = *mut DOT11_QOS_TX_MEDIUM_TIME;
738 pub const OID_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST: u32 = OID_DOT11_NDIS_START + 109;
739 STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY {
740 uCenterFrequency: ULONG,
741 }}
742 pub type PDOT11_SUPPORTED_OFDM_FREQUENCY = *mut DOT11_SUPPORTED_OFDM_FREQUENCY;
743 STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY_LIST {
744 uNumOfEntries: ULONG,
745 uTotalNumOfEntries: ULONG,
746 dot11SupportedOFDMFrequency: [DOT11_SUPPORTED_OFDM_FREQUENCY; 1],
747 }}
748 pub type PDOT11_SUPPORTED_OFDM_FREQUENCY_LIST = *mut DOT11_SUPPORTED_OFDM_FREQUENCY_LIST;
749 pub const OID_DOT11_SUPPORTED_DSSS_CHANNEL_LIST: u32 = OID_DOT11_NDIS_START + 110;
750 STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL {
751 uChannel: ULONG,
752 }}
753 pub type PDOT11_SUPPORTED_DSSS_CHANNEL = *mut DOT11_SUPPORTED_DSSS_CHANNEL;
754 STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL_LIST {
755 uNumOfEntries: ULONG,
756 uTotalNumOfEntries: ULONG,
757 dot11SupportedDSSSChannel: [DOT11_SUPPORTED_DSSS_CHANNEL; 1],
758 }}
759 pub type PDOT11_SUPPORTED_DSSS_CHANNEL_LIST = *mut DOT11_SUPPORTED_DSSS_CHANNEL_LIST;
760 STRUCT!{struct DOT11_BYTE_ARRAY {
761 Header: NDIS_OBJECT_HEADER,
762 uNumOfBytes: ULONG,
763 uTotalNumOfBytes: ULONG,
764 ucBuffer: [UCHAR; 1],
765 }}
766 pub type PDOT11_BYTE_ARRAY = *mut DOT11_BYTE_ARRAY;
767 pub const OID_DOT11_AUTO_CONFIG_ENABLED: u32 =
768 NWF_DEFINE_OID!(120, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
769 pub const DOT11_PHY_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000001;
770 pub const DOT11_MAC_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000002;
771 pub const OID_DOT11_ENUM_BSS_LIST: u32 =
772 NWF_DEFINE_OID!(121, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
773 pub const DOT11_BSS_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
774 STRUCT!{struct DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS {
775 uHopPattern: ULONG,
776 uHopSet: ULONG,
777 uDwellTime: ULONG,
778 }}
779 UNION!{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 }}
784 pub type PDOT11_BSS_ENTRY_PHY_SPECIFIC_INFO = *mut DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO;
785 STRUCT!{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 }}
800 pub type PDOT11_BSS_ENTRY = *mut DOT11_BSS_ENTRY;
801 pub const OID_DOT11_FLUSH_BSS_LIST: u32 =
802 NWF_DEFINE_OID!(122, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
803 pub const OID_DOT11_POWER_MGMT_REQUEST: u32 =
804 NWF_DEFINE_OID!(123, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
805 pub const DOT11_POWER_SAVING_NO_POWER_SAVING: ULONG = 0;
806 pub const DOT11_POWER_SAVING_FAST_PSP: ULONG = 8;
807 pub const DOT11_POWER_SAVING_MAX_PSP: ULONG = 16;
808 pub const DOT11_POWER_SAVING_MAXIMUM_LEVEL: ULONG = 24;
809 pub const OID_DOT11_DESIRED_SSID_LIST: u32 =
810 NWF_DEFINE_OID!(124, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
811 STRUCT!{struct DOT11_SSID_LIST {
812 Header: NDIS_OBJECT_HEADER,
813 uNumOfEntries: ULONG,
814 uTotalNumOfEntries: ULONG,
815 SSIDs: [DOT11_SSID; 1],
816 }}
817 pub type PDOT11_SSID_LIST = *mut DOT11_SSID_LIST;
818 pub const DOT11_SSID_LIST_REVISION_1: UCHAR = 1;
819 pub const OID_DOT11_EXCLUDED_MAC_ADDRESS_LIST: u32 =
820 NWF_DEFINE_OID!(125, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
821 STRUCT!{struct DOT11_MAC_ADDRESS_LIST {
822 Header: NDIS_OBJECT_HEADER,
823 uNumOfEntries: ULONG,
824 uTotalNumOfEntries: ULONG,
825 MacAddrs: [DOT11_MAC_ADDRESS; 1],
826 }}
827 pub type PDOT11_MAC_ADDRESS_LIST = *mut DOT11_MAC_ADDRESS_LIST;
828 pub const DOT11_MAC_ADDRESS_LIST_REVISION_1: UCHAR = 1;
829 pub const OID_DOT11_DESIRED_BSSID_LIST: u32 =
830 NWF_DEFINE_OID!(126, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
831 pub const OID_DOT11_DESIRED_BSS_TYPE: u32 =
832 NWF_DEFINE_OID!(127, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
833 pub const OID_DOT11_PMKID_LIST: u32 = NWF_DEFINE_OID!(128, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
834 pub type DOT11_PMKID_VALUE = [UCHAR; 16];
835 STRUCT!{struct DOT11_PMKID_ENTRY {
836 BSSID: DOT11_MAC_ADDRESS,
837 PMKID: DOT11_PMKID_VALUE,
838 uFlags: ULONG,
839 }}
840 pub type PDOT11_PMKID_ENTRY = *mut DOT11_PMKID_ENTRY;
841 STRUCT!{struct DOT11_PMKID_LIST {
842 Header: NDIS_OBJECT_HEADER,
843 uNumOfEntries: ULONG,
844 uTotalNumOfEntries: ULONG,
845 PMKIDs: [DOT11_PMKID_ENTRY; 1],
846 }}
847 pub type PDOT11_PMKID_LIST = *mut DOT11_PMKID_LIST;
848 pub const DOT11_PMKID_LIST_REVISION_1: UCHAR = 1;
849 pub const OID_DOT11_CONNECT_REQUEST: u32 =
850 NWF_DEFINE_OID!(129, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
851 pub const OID_DOT11_EXCLUDE_UNENCRYPTED: u32 =
852 NWF_DEFINE_OID!(130, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
853 pub const OID_DOT11_STATISTICS: u32 =
854 NWF_DEFINE_OID!(131, NWF_STATISTICS_OID, NWF_MANDATORY_OID);
855 pub const DOT11_STATISTICS_UNKNOWN: ULONGLONG = -1i64 as u64;
856 STRUCT!{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 }}
876 pub type PDOT11_PHY_FRAME_STATISTICS = *mut DOT11_PHY_FRAME_STATISTICS;
877 STRUCT!{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 }}
893 pub type PDOT11_MAC_FRAME_STATISTICS = *mut DOT11_MAC_FRAME_STATISTICS;
894 STRUCT!{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 }}
903 pub type PDOT11_STATISTICS = *mut DOT11_STATISTICS;
904 pub const DOT11_STATISTICS_REVISION_1: UCHAR = 1;
905 pub const OID_DOT11_PRIVACY_EXEMPTION_LIST: u32 =
906 NWF_DEFINE_OID!(132, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
907 STRUCT!{struct DOT11_PRIVACY_EXEMPTION {
908 usEtherType: USHORT,
909 usExemptionActionType: USHORT,
910 usExemptionPacketType: USHORT,
911 }}
912 pub type PDOT11_PRIVACY_EXEMPTION = *mut DOT11_PRIVACY_EXEMPTION;
913 pub const DOT11_EXEMPT_NO_EXEMPTION: USHORT = 0;
914 pub const DOT11_EXEMPT_ALWAYS: USHORT = 1;
915 pub const DOT11_EXEMPT_ON_KEY_MAPPING_KEY_UNAVAILABLE: USHORT = 2;
916 pub const DOT11_EXEMPT_UNICAST: USHORT = 1;
917 pub const DOT11_EXEMPT_MULTICAST: USHORT = 2;
918 pub const DOT11_EXEMPT_BOTH: USHORT = 3;
919 STRUCT!{struct DOT11_PRIVACY_EXEMPTION_LIST {
920 Header: NDIS_OBJECT_HEADER,
921 uNumOfEntries: ULONG,
922 uTotalNumOfEntries: ULONG,
923 PrivacyExemptionEntries: [DOT11_PRIVACY_EXEMPTION; 1],
924 }}
925 pub type PDOT11_PRIVACY_EXEMPTION_LIST = *mut DOT11_PRIVACY_EXEMPTION_LIST;
926 pub const DOT11_PRIVACY_EXEMPTION_LIST_REVISION_1: UCHAR = 1;
927 pub const OID_DOT11_ENABLED_AUTHENTICATION_ALGORITHM: u32 =
928 NWF_DEFINE_OID!(133, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
929 STRUCT!{struct DOT11_AUTH_ALGORITHM_LIST {
930 Header: NDIS_OBJECT_HEADER,
931 uNumOfEntries: ULONG,
932 uTotalNumOfEntries: ULONG,
933 AlgorithmIds: [DOT11_AUTH_ALGORITHM; 1],
934 }}
935 pub type PDOT11_AUTH_ALGORITHM_LIST = *mut DOT11_AUTH_ALGORITHM_LIST;
936 pub const DOT11_AUTH_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
937 pub const OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR: u32 =
938 NWF_DEFINE_OID!(134, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
939 STRUCT!{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 }}
945 pub type PDOT11_AUTH_CIPHER_PAIR_LIST = *mut DOT11_AUTH_CIPHER_PAIR_LIST;
946 pub const DOT11_AUTH_CIPHER_PAIR_LIST_REVISION_1: UCHAR = 1;
947 pub const OID_DOT11_ENABLED_UNICAST_CIPHER_ALGORITHM: u32 =
948 NWF_DEFINE_OID!(135, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
949 STRUCT!{struct DOT11_CIPHER_ALGORITHM_LIST {
950 Header: NDIS_OBJECT_HEADER,
951 uNumOfEntries: ULONG,
952 uTotalNumOfEntries: ULONG,
953 AlgorithmIds: [DOT11_CIPHER_ALGORITHM; 1],
954 }}
955 pub type PDOT11_CIPHER_ALGORITHM_LIST = *mut DOT11_CIPHER_ALGORITHM_LIST;
956 pub const DOT11_CIPHER_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
957 pub const OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR: u32 =
958 NWF_DEFINE_OID!(136, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
959 pub const OID_DOT11_ENABLED_MULTICAST_CIPHER_ALGORITHM: u32 =
960 NWF_DEFINE_OID!(137, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
961 pub const OID_DOT11_CIPHER_DEFAULT_KEY_ID: u32 =
962 NWF_DEFINE_OID!(138, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
963 pub const OID_DOT11_CIPHER_DEFAULT_KEY: u32 =
964 NWF_DEFINE_OID!(139, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
965 STRUCT!{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 }}
975 pub type PDOT11_CIPHER_DEFAULT_KEY_VALUE = *mut DOT11_CIPHER_DEFAULT_KEY_VALUE;
976 pub const DOT11_CIPHER_DEFAULT_KEY_VALUE_REVISION_1: UCHAR = 1;
977 STRUCT!{struct DOT11_KEY_ALGO_TKIP_MIC {
978 ucIV48Counter: [UCHAR; 6],
979 ulTKIPKeyLength: ULONG,
980 ulMICKeyLength: ULONG,
981 ucTKIPMICKeys: [UCHAR; 1],
982 }}
983 pub type PDOT11_KEY_ALGO_TKIP_MIC = *mut DOT11_KEY_ALGO_TKIP_MIC;
984 STRUCT!{struct DOT11_KEY_ALGO_CCMP {
985 ucIV48Counter: [UCHAR; 6],
986 ulCCMPKeyLength: ULONG,
987 ucCCMPKey: [UCHAR; 1],
988 }}
989 pub type PDOT11_KEY_ALGO_CCMP = *mut DOT11_KEY_ALGO_CCMP;
990 STRUCT!{struct DOT11_KEY_ALGO_GCMP {
991 ucIV48Counter: [UCHAR; 6],
992 ulGCMPKeyLength: ULONG,
993 ucGCMPKey: [UCHAR; 1],
994 }}
995 pub type PDOT11_KEY_ALGO_GCMP = *mut DOT11_KEY_ALGO_GCMP;
996 STRUCT!{struct DOT11_KEY_ALGO_BIP {
997 ucIPN: [UCHAR; 6],
998 ulBIPKeyLength: ULONG,
999 ucBIPKey: [UCHAR; 1],
1000 }}
1001 pub type PDOT11_KEY_ALGO_BIP = *mut DOT11_KEY_ALGO_BIP;
1002 pub const OID_DOT11_CIPHER_KEY_MAPPING_KEY: u32 =
1003 NWF_DEFINE_OID!(140, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1004 ENUM!{enum DOT11_DIRECTION {
1005 DOT11_DIR_INBOUND = 1,
1006 DOT11_DIR_OUTBOUND = 2,
1007 DOT11_DIR_BOTH = 3,
1008 }}
1009 pub type PDOT11_DIRECTION = *mut DOT11_DIRECTION;
1010 pub const DOT11_CIPHER_KEY_MAPPING_KEY_VALUE_BYTE_ARRAY_REVISION_1: UCHAR = 1;
1011 STRUCT!{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 }}
1020 pub type PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE = *mut DOT11_CIPHER_KEY_MAPPING_KEY_VALUE;
1021 pub const OID_DOT11_ENUM_ASSOCIATION_INFO: u32 =
1022 NWF_DEFINE_OID!(141, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1023 ENUM!{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 }}
1029 pub type PDOT11_ASSOCIATION_STATE = *mut DOT11_ASSOCIATION_STATE;
1030 STRUCT!{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 }}
1045 pub type PDOT11_ASSOCIATION_INFO_EX = *mut DOT11_ASSOCIATION_INFO_EX;
1046 STRUCT!{struct DOT11_ASSOCIATION_INFO_LIST {
1047 Header: NDIS_OBJECT_HEADER,
1048 uNumOfEntries: ULONG,
1049 uTotalNumOfEntries: ULONG,
1050 dot11AssocInfo: [DOT11_ASSOCIATION_INFO_EX; 1],
1051 }}
1052 pub type PDOT11_ASSOCIATION_INFO_LIST = *mut DOT11_ASSOCIATION_INFO_LIST;
1053 pub const DOT11_ASSOCIATION_INFO_LIST_REVISION_1: UCHAR = 1;
1054 pub const OID_DOT11_DISCONNECT_REQUEST: u32 =
1055 NWF_DEFINE_OID!(142, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1056 pub const OID_DOT11_UNICAST_USE_GROUP_ENABLED: u32 =
1057 NWF_DEFINE_OID!(143, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1058 pub const OID_DOT11_HARDWARE_PHY_STATE: u32 =
1059 NWF_DEFINE_OID!(144, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1060 pub const OID_DOT11_DESIRED_PHY_LIST: u32 =
1061 NWF_DEFINE_OID!(145, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1062 STRUCT!{struct DOT11_PHY_ID_LIST {
1063 Header: NDIS_OBJECT_HEADER,
1064 uNumOfEntries: ULONG,
1065 uTotalNumOfEntries: ULONG,
1066 dot11PhyId: [ULONG; 1],
1067 }}
1068 pub type PDOT11_PHY_ID_LIST = *mut DOT11_PHY_ID_LIST;
1069 pub const DOT11_PHY_ID_LIST_REVISION_1: UCHAR = 1;
1070 pub const DOT11_PHY_ID_ANY: ULONG = 0xffffffff;
1071 pub const OID_DOT11_CURRENT_PHY_ID: u32 =
1072 NWF_DEFINE_OID!(146, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1073 pub const OID_DOT11_MEDIA_STREAMING_ENABLED: u32 =
1074 NWF_DEFINE_OID!(147, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1075 pub const OID_DOT11_UNREACHABLE_DETECTION_THRESHOLD: u32 =
1076 NWF_DEFINE_OID!(148, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1077 pub const OID_DOT11_ACTIVE_PHY_LIST: u32 =
1078 NWF_DEFINE_OID!(149, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1079 pub const OID_DOT11_EXTSTA_CAPABILITY: u32 =
1080 NWF_DEFINE_OID!(150, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1081 STRUCT!{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 }}
1094 pub type PDOT11_EXTSTA_CAPABILITY = *mut DOT11_EXTSTA_CAPABILITY;
1095 pub const DOT11_EXTSTA_CAPABILITY_REVISION_1: UCHAR = 1;
1096 pub const OID_DOT11_DATA_RATE_MAPPING_TABLE: u32 =
1097 NWF_DEFINE_OID!(151, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1098 STRUCT!{struct DOT11_DATA_RATE_MAPPING_ENTRY {
1099 ucDataRateIndex: UCHAR,
1100 ucDataRateFlag: UCHAR,
1101 usDataRateValue: USHORT,
1102 }}
1103 pub type PDOT11_DATA_RATE_MAPPING_ENTRY = *mut DOT11_DATA_RATE_MAPPING_ENTRY;
1104 STRUCT!{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 }}
1109 pub type PDOT11_DATA_RATE_MAPPING_TABLE = *mut DOT11_DATA_RATE_MAPPING_TABLE;
1110 pub const DOT11_DATA_RATE_MAPPING_TABLE_REVISION_1: UCHAR = 1;
1111 pub const DOT11_DATA_RATE_NON_STANDARD: UCHAR = 0x01;
1112 pub const DOT11_DATA_RATE_INDEX_MASK: UCHAR = 0x7f;
1113 pub const OID_DOT11_SUPPORTED_COUNTRY_OR_REGION_STRING: u32 =
1114 NWF_DEFINE_OID!(152, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1115 STRUCT!{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 }}
1121 pub type PDOT11_COUNTRY_OR_REGION_STRING_LIST = *mut DOT11_COUNTRY_OR_REGION_STRING_LIST;
1122 pub const DOT11_COUNTRY_OR_REGION_STRING_LIST_REVISION_1: UCHAR = 1;
1123 pub const OID_DOT11_DESIRED_COUNTRY_OR_REGION_STRING: u32 =
1124 NWF_DEFINE_OID!(153, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1125 pub const OID_DOT11_PORT_STATE_NOTIFICATION: u32 =
1126 NWF_DEFINE_OID!(154, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
1127 STRUCT!{struct DOT11_PORT_STATE_NOTIFICATION {
1128 Header: NDIS_OBJECT_HEADER,
1129 PeerMac: DOT11_MAC_ADDRESS,
1130 bOpen: BOOLEAN,
1131 }}
1132 pub type PDOT11_PORT_STATE_NOTIFICATION = *mut DOT11_PORT_STATE_NOTIFICATION;
1133 pub const DOT11_PORT_STATE_NOTIFICATION_REVISION_1: UCHAR = 1;
1134 pub const OID_DOT11_IBSS_PARAMS: u32 =
1135 NWF_DEFINE_OID!(155, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1136 STRUCT!{struct DOT11_IBSS_PARAMS {
1137 Header: NDIS_OBJECT_HEADER,
1138 bJoinOnly: BOOLEAN,
1139 uIEsOffset: ULONG,
1140 uIEsLength: ULONG,
1141 }}
1142 pub type PDOT11_IBSS_PARAMS = *mut DOT11_IBSS_PARAMS;
1143 pub const DOT11_IBSS_PARAMS_REVISION_1: UCHAR = 1;
1144 pub const OID_DOT11_QOS_PARAMS: u32 = NWF_DEFINE_OID!(156, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
1145 STRUCT!{struct DOT11_QOS_PARAMS {
1146 Header: NDIS_OBJECT_HEADER,
1147 ucEnabledQoSProtocolFlags: UCHAR,
1148 }}
1149 pub type PDOT11_QOS_PARAMS = *mut DOT11_QOS_PARAMS;
1150 pub const DOT11_QOS_PARAMS_REVISION_1: UCHAR = 1;
1151 pub const DOT11_QOS_PROTOCOL_FLAG_WMM: UCHAR = 0x01;
1152 pub const DOT11_QOS_PROTOCOL_FLAG_11E: UCHAR = 0x02;
1153 pub const OID_DOT11_SAFE_MODE_ENABLED: u32 =
1154 NWF_DEFINE_OID!(157, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1155 pub const OID_DOT11_HIDDEN_NETWORK_ENABLED: u32 =
1156 NWF_DEFINE_OID!(158, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1157 pub const OID_DOT11_ASSOCIATION_PARAMS: u32 =
1158 NWF_DEFINE_OID!(159, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1159 STRUCT!{struct DOT11_ASSOCIATION_PARAMS {
1160 Header: NDIS_OBJECT_HEADER,
1161 BSSID: DOT11_MAC_ADDRESS,
1162 uAssocRequestIEsOffset: ULONG,
1163 uAssocRequestIEsLength: ULONG,
1164 }}
1165 pub type PDOT11_ASSOCIATION_PARAMS = *mut DOT11_ASSOCIATION_PARAMS;
1166 pub const DOT11_ASSOCIATION_PARAMS_REVISION_1: UCHAR = 1;
1167 pub const OID_DOT11_SAFE_MODE_HT_ENABLED: u32 =
1168 NWF_DEFINE_OID!(160, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
1169 pub const DOT11_MAX_NUM_OF_FRAGMENTS: USHORT = 16;
1170 pub const DOT11_PRIORITY_CONTENTION: i32 = 0;
1171 pub const DOT11_PRIORITY_CONTENTION_FREE: i32 = 1;
1172 pub const DOT11_SERVICE_CLASS_REORDERABLE_MULTICAST: i32 = 0;
1173 pub const DOT11_SERVICE_CLASS_STRICTLY_ORDERED: i32 = 1;
1174 pub const DOT11_FLAGS_80211B_SHORT_PREAMBLE: u32 = 0x00000001;
1175 pub const DOT11_FLAGS_80211B_PBCC: u32 = 0x00000002;
1176 pub const DOT11_FLAGS_80211B_CHANNEL_AGILITY: u32 = 0x00000004;
1177 pub const DOT11_FLAGS_PS_ON: u32 = 0x00000008;
1178 pub const DOT11_FLAGS_80211G_DSSS_OFDM: u32 = 0x00000010;
1179 pub const DOT11_FLAGS_80211G_USE_PROTECTION: u32 = 0x00000020;
1180 pub const DOT11_FLAGS_80211G_NON_ERP_PRESENT: u32 = 0x00000040;
1181 pub const DOT11_FLAGS_80211G_BARKER_PREAMBLE_MODE: u32 = 0x00000080;
1182 pub const DOT11_WME_PACKET: u32 = 0x00000100;
1183 STRUCT!{struct DOT11_FRAGMENT_DESCRIPTOR {
1184 uOffset: ULONG,
1185 uLength: ULONG,
1186 }}
1187 pub type PDOT11_FRAGMENT_DESCRIPTOR = *mut DOT11_FRAGMENT_DESCRIPTOR;
1188 STRUCT!{struct DOT11_PER_MSDU_COUNTERS {
1189 uTransmittedFragmentCount: ULONG,
1190 uRetryCount: ULONG,
1191 uRTSSuccessCount: ULONG,
1192 uRTSFailureCount: ULONG,
1193 uACKFailureCount: ULONG,
1194 }}
1195 pub type PDOT11_PER_MSDU_COUNTERS = *mut DOT11_PER_MSDU_COUNTERS;
1196 STRUCT!{struct DOT11_HRDSSS_PHY_ATTRIBUTES {
1197 bShortPreambleOptionImplemented: BOOLEAN,
1198 bPBCCOptionImplemented: BOOLEAN,
1199 bChannelAgilityPresent: BOOLEAN,
1200 uHRCCAModeSupported: ULONG,
1201 }}
1202 pub type PDOT11_HRDSSS_PHY_ATTRIBUTES = *mut DOT11_HRDSSS_PHY_ATTRIBUTES;
1203 STRUCT!{struct DOT11_OFDM_PHY_ATTRIBUTES {
1204 uFrequencyBandsSupported: ULONG,
1205 }}
1206 pub type PDOT11_OFDM_PHY_ATTRIBUTES = *mut DOT11_OFDM_PHY_ATTRIBUTES;
1207 STRUCT!{struct DOT11_ERP_PHY_ATTRIBUTES {
1208 HRDSSSAttributes: DOT11_HRDSSS_PHY_ATTRIBUTES,
1209 bERPPBCCOptionImplemented: BOOLEAN,
1210 bDSSSOFDMOptionImplemented: BOOLEAN,
1211 bShortSlotTimeOptionImplemented: BOOLEAN,
1212 }}
1213 pub type PDOT11_ERP_PHY_ATTRIBUTES = *mut DOT11_ERP_PHY_ATTRIBUTES;
1214 pub const DOT11_PHY_ATTRIBUTES_REVISION_1: UCHAR = 1;
1215 UNION!{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 }}
1221 STRUCT!{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 }}
1237 pub type PDOT11_PHY_ATTRIBUTES = *mut DOT11_PHY_ATTRIBUTES;
1238 pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_OID_SUPPORTED: UINT8 = 0x1;
1239 pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_CERTIFIED: UINT8 = 0x2;
1240 pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_RESERVED: UINT8 = 0xC;
1241 pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_1: UCHAR = 1;
1242 pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_2: UCHAR = 2;
1243 pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_3: UCHAR = 3;
1244 pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_4: UCHAR = 4;
1245 STRUCT!{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 }}
1281 pub type PDOT11_EXTSTA_ATTRIBUTES = *mut DOT11_EXTSTA_ATTRIBUTES;
1282 STRUCT!{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 }}
1307 pub type PDOT11_RECV_EXTENSION_INFO = *mut DOT11_RECV_EXTENSION_INFO;
1308 STRUCT!{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 }}
1331 pub type PDOT11_RECV_EXTENSION_INFO_V2 = *mut DOT11_RECV_EXTENSION_INFO_V2;
1332 pub const DOT11_STATUS_SUCCESS: NDIS_STATUS = 0x00000001;
1333 pub const DOT11_STATUS_RETRY_LIMIT_EXCEEDED: NDIS_STATUS = 0x00000002;
1334 pub const DOT11_STATUS_UNSUPPORTED_PRIORITY: NDIS_STATUS = 0x00000004;
1335 pub const DOT11_STATUS_UNSUPPORTED_SERVICE_CLASS: NDIS_STATUS = 0x00000008;
1336 pub const DOT11_STATUS_UNAVAILABLE_PRIORITY: NDIS_STATUS = 0x00000010;
1337 pub const DOT11_STATUS_UNAVAILABLE_SERVICE_CLASS: NDIS_STATUS = 0x00000020;
1338 pub const DOT11_STATUS_XMIT_MSDU_TIMER_EXPIRED: NDIS_STATUS = 0x00000040;
1339 pub const DOT11_STATUS_UNAVAILABLE_BSS: NDIS_STATUS = 0x00000080;
1340 pub const DOT11_STATUS_EXCESSIVE_DATA_LENGTH: NDIS_STATUS = 0x00000100;
1341 pub const DOT11_STATUS_ENCRYPTION_FAILED: NDIS_STATUS = 0x00000200;
1342 pub const DOT11_STATUS_WEP_KEY_UNAVAILABLE: NDIS_STATUS = 0x00000400;
1343 pub const DOT11_STATUS_ICV_VERIFIED: NDIS_STATUS = 0x00000800;
1344 pub const DOT11_STATUS_PACKET_REASSEMBLED: NDIS_STATUS = 0x00001000;
1345 pub const DOT11_STATUS_PACKET_NOT_REASSEMBLED: NDIS_STATUS = 0x00002000;
1346 pub const DOT11_STATUS_GENERATE_AUTH_FAILED: NDIS_STATUS = 0x00004000;
1347 pub const DOT11_STATUS_AUTH_NOT_VERIFIED: NDIS_STATUS = 0x00008000;
1348 pub const DOT11_STATUS_AUTH_VERIFIED: NDIS_STATUS = 0x00010000;
1349 pub const DOT11_STATUS_AUTH_FAILED: NDIS_STATUS = 0x00020000;
1350 pub const DOT11_STATUS_PS_LIFETIME_EXPIRED: NDIS_STATUS = 0x00040000;
1351 STRUCT!{struct DOT11_STATUS_INDICATION {
1352 uStatusType: ULONG,
1353 ndisStatus: NDIS_STATUS,
1354 }}
1355 pub type PDOT11_STATUS_INDICATION = *mut DOT11_STATUS_INDICATION;
1356 pub const DOT11_STATUS_RESET_CONFIRM: ULONG = 4;
1357 pub const DOT11_STATUS_SCAN_CONFIRM: ULONG = 1;
1358 pub const DOT11_STATUS_JOIN_CONFIRM: ULONG = 2;
1359 pub const DOT11_STATUS_START_CONFIRM: ULONG = 3;
1360 pub const DOT11_STATUS_AP_JOIN_CONFIRM: ULONG = 5;
1361 pub const DOT11_STATUS_MPDU_MAX_LENGTH_CHANGED: ULONG = 6;
1362 STRUCT!{struct DOT11_MPDU_MAX_LENGTH_INDICATION {
1363 Header: NDIS_OBJECT_HEADER,
1364 uPhyId: ULONG,
1365 uMPDUMaxLength: ULONG,
1366 }}
1367 pub type PDOT11_MPDU_MAX_LENGTH_INDICATION = *mut DOT11_MPDU_MAX_LENGTH_INDICATION;
1368 pub const DOT11_MPDU_MAX_LENGTH_INDICATION_REVISION_1: UCHAR = 1;
1369 STRUCT!{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 }}
1376 pub type PDOT11_ASSOCIATION_START_PARAMETERS = *mut DOT11_ASSOCIATION_START_PARAMETERS;
1377 pub const DOT11_ASSOCIATION_START_PARAMETERS_REVISION_1: UCHAR = 1;
1378 pub const DOT11_ENCAP_RFC_1042: USHORT = 1;
1379 pub const DOT11_ENCAP_802_1H: USHORT = 2;
1380 STRUCT!{struct DOT11_ENCAP_ENTRY {
1381 usEtherType: USHORT,
1382 usEncapType: USHORT,
1383 }}
1384 pub type PDOT11_ENCAP_ENTRY = *mut DOT11_ENCAP_ENTRY;
1385 ENUM!{enum DOT11_DS_INFO {
1386 DOT11_DS_CHANGED = 0,
1387 DOT11_DS_UNCHANGED = 1,
1388 DOT11_DS_UNKNOWN = 2,
1389 }}
1390 pub type PDOT11_DS_INFO = *mut DOT11_DS_INFO;
1391 pub type DOT11_ASSOC_STATUS = ULONG;
1392 pub const DOT11_ASSOC_STATUS_SUCCESS: DOT11_ASSOC_STATUS = 0;
1393 pub const DOT11_ASSOC_STATUS_FAILURE: DOT11_ASSOC_STATUS = 0x00000001;
1394 pub const DOT11_ASSOC_STATUS_UNREACHABLE: DOT11_ASSOC_STATUS = 0x00000002;
1395 pub const DOT11_ASSOC_STATUS_RADIO_OFF: DOT11_ASSOC_STATUS = 0x00000003;
1396 pub const DOT11_ASSOC_STATUS_PHY_DISABLED: DOT11_ASSOC_STATUS = 0x00000004;
1397 pub const DOT11_ASSOC_STATUS_CANCELLED: DOT11_ASSOC_STATUS = 0x00000005;
1398 pub const DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS = 0x00000006;
1399 pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS: DOT11_ASSOC_STATUS = 0x00000007;
1400 pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_ROAMING: DOT11_ASSOC_STATUS = 0x00000008;
1401 pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_RESET: DOT11_ASSOC_STATUS = 0x00000009;
1402 pub const DOT11_ASSOC_STATUS_SYSTEM_ERROR: DOT11_ASSOC_STATUS = 0x0000000a;
1403 pub const DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND: DOT11_ASSOC_STATUS = 0x0000000b;
1404 pub const DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST: DOT11_ASSOC_STATUS = 0x0000000c;
1405 pub const DOT11_ASSOC_STATUS_ROAMING_ADHOC: DOT11_ASSOC_STATUS = 0x0000000d;
1406 pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS = 0x00010000;
1407 pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_START: DOT11_ASSOC_STATUS =
1408 DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
1409 pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_END: DOT11_ASSOC_STATUS = 0x0001ffff;
1410 pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS = 0x00020000;
1411 pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_START: DOT11_ASSOC_STATUS =
1412 DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
1413 pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_END: DOT11_ASSOC_STATUS = 0x0002ffff;
1414 pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE: DOT11_ASSOC_STATUS = 0x00030000;
1415 pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_START: DOT11_ASSOC_STATUS =
1416 DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE;
1417 pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_END: DOT11_ASSOC_STATUS = 0x0003ffff;
1418 pub const DOT11_ASSOC_STATUS_REASON_CODE_MASK: DOT11_ASSOC_STATUS = 0xffff;
1419 pub const DOT11_ASSOC_STATUS_IHV_START: DOT11_ASSOC_STATUS = 0x80000000;
1420 pub const DOT11_ASSOC_STATUS_IHV_END: DOT11_ASSOC_STATUS = 0xffffffff;
1421 STRUCT!{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 }}
1449 pub type PDOT11_ASSOCIATION_COMPLETION_PARAMETERS = *mut DOT11_ASSOCIATION_COMPLETION_PARAMETERS;
1450 pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1451 pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_2: UCHAR = 2;
1452 STRUCT!{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 }}
1458 pub type PDOT11_CONNECTION_START_PARAMETERS = *mut DOT11_CONNECTION_START_PARAMETERS;
1459 pub const DOT11_CONNECTION_START_PARAMETERS_REVISION_1: UCHAR = 1;
1460 pub const DOT11_CONNECTION_STATUS_SUCCESS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_SUCCESS;
1461 pub const DOT11_CONNECTION_STATUS_FAILURE: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_FAILURE;
1462 pub const DOT11_CONNECTION_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS =
1463 DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED;
1464 pub const DOT11_CONNECTION_STATUS_PHY_POWER_DOWN: DOT11_ASSOC_STATUS =
1465 DOT11_ASSOC_STATUS_RADIO_OFF;
1466 pub const DOT11_CONNECTION_STATUS_CANCELLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_CANCELLED;
1467 pub const DOT11_CONNECTION_STATUS_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
1468 pub const DOT11_CONNECTION_STATUS_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
1469 STRUCT!{struct DOT11_CONNECTION_COMPLETION_PARAMETERS {
1470 Header: NDIS_OBJECT_HEADER,
1471 uStatus: DOT11_ASSOC_STATUS,
1472 }}
1473 pub type PDOT11_CONNECTION_COMPLETION_PARAMETERS = *mut DOT11_CONNECTION_COMPLETION_PARAMETERS;
1474 pub const DOT11_CONNECTION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1475 pub const DOT11_ROAMING_REASON_BETTER_AP_FOUND: DOT11_ASSOC_STATUS =
1476 DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND;
1477 pub const DOT11_ROAMING_REASON_ASSOCIATION_LOST: DOT11_ASSOC_STATUS =
1478 DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST;
1479 pub const DOT11_ROAMING_REASON_ADHOC: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_ROAMING_ADHOC;
1480 pub const DOT11_ROAMING_REASON_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
1481 pub const DOT11_ROAMING_REASON_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
1482 STRUCT!{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 }}
1488 pub type PDOT11_ROAMING_START_PARAMETERS = *mut DOT11_ROAMING_START_PARAMETERS;
1489 pub const DOT11_ROAMING_START_PARAMETERS_REVISION_1: UCHAR = 1;
1490 STRUCT!{struct DOT11_ROAMING_COMPLETION_PARAMETERS {
1491 Header: NDIS_OBJECT_HEADER,
1492 uStatus: DOT11_ASSOC_STATUS,
1493 }}
1494 pub type PDOT11_ROAMING_COMPLETION_PARAMETERS = *mut DOT11_ROAMING_COMPLETION_PARAMETERS;
1495 pub const DOT11_ROAMING_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1496 pub const DOT11_DISASSOC_REASON_OS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS;
1497 pub const DOT11_DISASSOC_REASON_PEER_UNREACHABLE: DOT11_ASSOC_STATUS =
1498 DOT11_ASSOC_STATUS_UNREACHABLE;
1499 pub const DOT11_DISASSOC_REASON_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS =
1500 DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
1501 pub const DOT11_DISASSOC_REASON_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS =
1502 DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
1503 pub const DOT11_DISASSOC_REASON_RADIO_OFF: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_RADIO_OFF;
1504 pub const DOT11_DISASSOC_REASON_PHY_DISABLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_PHY_DISABLED;
1505 pub const DOT11_DISASSOC_REASON_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
1506 pub const DOT11_DISASSOC_REASON_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
1507 STRUCT!{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 }}
1514 pub type PDOT11_DISASSOCIATION_PARAMETERS = *mut DOT11_DISASSOCIATION_PARAMETERS;
1515 pub const DOT11_DISASSOCIATION_PARAMETERS_REVISION_1: UCHAR = 1;
1516 STRUCT!{struct DOT11_TKIPMIC_FAILURE_PARAMETERS {
1517 Header: NDIS_OBJECT_HEADER,
1518 bDefaultKeyFailure: BOOLEAN,
1519 uKeyIndex: ULONG,
1520 PeerMac: DOT11_MAC_ADDRESS,
1521 }}
1522 pub type PDOT11_TKIPMIC_FAILURE_PARAMETERS = *mut DOT11_TKIPMIC_FAILURE_PARAMETERS;
1523 pub const DOT11_TKIPMIC_FAILURE_PARAMETERS_REVISION_1: UCHAR = 1;
1524 STRUCT!{struct DOT11_PMKID_CANDIDATE_LIST_PARAMETERS {
1525 Header: NDIS_OBJECT_HEADER,
1526 uCandidateListSize: ULONG,
1527 uCandidateListOffset: ULONG,
1528 }}
1529 pub type PDOT11_PMKID_CANDIDATE_LIST_PARAMETERS = *mut DOT11_PMKID_CANDIDATE_LIST_PARAMETERS;
1530 pub const DOT11_PMKID_CANDIDATE_LIST_PARAMETERS_REVISION_1: UCHAR = 1;
1531 STRUCT!{struct DOT11_BSSID_CANDIDATE {
1532 BSSID: DOT11_MAC_ADDRESS,
1533 uFlags: ULONG,
1534 }}
1535 pub type PDOT11_BSSID_CANDIDATE = *mut DOT11_BSSID_CANDIDATE;
1536 pub const DOT11_PMKID_CANDIDATE_PREAUTH_ENABLED: ULONG = 0x00000001;
1537 STRUCT!{struct DOT11_PHY_STATE_PARAMETERS {
1538 Header: NDIS_OBJECT_HEADER,
1539 uPhyId: ULONG,
1540 bHardwarePhyState: BOOLEAN,
1541 bSoftwarePhyState: BOOLEAN,
1542 }}
1543 pub type PDOT11_PHY_STATE_PARAMETERS = *mut DOT11_PHY_STATE_PARAMETERS;
1544 pub const DOT11_PHY_STATE_PARAMETERS_REVISION_1: UCHAR = 1;
1545 STRUCT!{struct DOT11_LINK_QUALITY_ENTRY {
1546 PeerMacAddr: DOT11_MAC_ADDRESS,
1547 ucLinkQuality: UCHAR,
1548 }}
1549 pub type PDOT11_LINK_QUALITY_ENTRY = *mut DOT11_LINK_QUALITY_ENTRY;
1550 STRUCT!{struct DOT11_LINK_QUALITY_PARAMETERS {
1551 Header: NDIS_OBJECT_HEADER,
1552 uLinkQualityListSize: ULONG,
1553 uLinkQualityListOffset: ULONG,
1554 }}
1555 pub type PDOT11_LINK_QUALITY_PARAMETERS = *mut DOT11_LINK_QUALITY_PARAMETERS;
1556 pub const DOT11_LINK_QUALITY_PARAMETERS_REVISION_1: UCHAR = 1;
1557 STRUCT!{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 }}
1565 pub type PDOT11_EXTSTA_SEND_CONTEXT = *mut DOT11_EXTSTA_SEND_CONTEXT;
1566 pub type DOT11_EXTAP_SEND_CONTEXT = DOT11_EXTSTA_SEND_CONTEXT;
1567 pub type PDOT11_EXTAP_SEND_CONTEXT = *mut DOT11_EXTSTA_SEND_CONTEXT;
1568 pub const DOT11_EXTSTA_SEND_CONTEXT_REVISION_1: UCHAR = 1;
1569 pub const DOT11_RECV_FLAG_RAW_PACKET: ULONG = 0x00000001;
1570 pub const DOT11_RECV_FLAG_RAW_PACKET_FCS_FAILURE: ULONG = 0x00000002;
1571 pub const DOT11_RECV_FLAG_RAW_PACKET_TIMESTAMP: ULONG = 0x00000004;
1572 pub const DOT11_EXTSTA_RECV_CONTEXT_REVISION_1: UCHAR = 1;
1573 STRUCT!{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 }}
1585 pub type PDOT11_EXTSTA_RECV_CONTEXT = *mut DOT11_EXTSTA_RECV_CONTEXT;
1586 pub type DOT11_EXTAP_RECV_CONTEXT = DOT11_EXTSTA_RECV_CONTEXT;
1587 pub type PDOT11_EXTAP_RECV_CONTEXT = *mut DOT11_EXTSTA_RECV_CONTEXT;
1588 pub const OID_DOT11_PRIVATE_OIDS_START: u32 = OID_DOT11_NDIS_START + 1024;
1589 pub const OID_DOT11_CURRENT_ADDRESS: u32 = OID_DOT11_PRIVATE_OIDS_START + 2;
1590 pub const OID_DOT11_PERMANENT_ADDRESS: u32 = OID_DOT11_PRIVATE_OIDS_START + 3;
1591 pub const OID_DOT11_MULTICAST_LIST: u32 = OID_DOT11_PRIVATE_OIDS_START + 4;
1592 pub const OID_DOT11_MAXIMUM_LIST_SIZE: u32 = OID_DOT11_PRIVATE_OIDS_START + 5;
1593 macro_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 }
1601 DEFINE_NWF_GUID!{GUID_NWF_OFFLOAD_CAPABILITY, 0}
1602 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OFFLOAD_CAPABILITY, 1}
1603 DEFINE_NWF_GUID!{GUID_NWF_WEP_OFFLOAD, 2}
1604 DEFINE_NWF_GUID!{GUID_NWF_WEP_UPLOAD, 3}
1605 DEFINE_NWF_GUID!{GUID_NWF_DEFAULT_WEP_OFFLOAD, 4}
1606 DEFINE_NWF_GUID!{GUID_NWF_DEFAULT_WEP_UPLOAD, 5}
1607 DEFINE_NWF_GUID!{GUID_NWF_MPDU_MAX_LENGTH, 6}
1608 DEFINE_NWF_GUID!{GUID_NWF_OPERATION_MODE_CAPABILITY, 7}
1609 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OPERATION_MODE, 8}
1610 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PACKET_FILTER, 9}
1611 DEFINE_NWF_GUID!{GUID_NWF_ATIM_WINDOW, 10}
1612 DEFINE_NWF_GUID!{GUID_NWF_SCAN_REQUEST, 11}
1613 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PHY_TYPE, 12}
1614 DEFINE_NWF_GUID!{GUID_NWF_JOIN_REQUEST, 13}
1615 DEFINE_NWF_GUID!{GUID_NWF_START_REQUEST, 14}
1616 DEFINE_NWF_GUID!{GUID_NWF_UPDATE_IE, 15}
1617 DEFINE_NWF_GUID!{GUID_NWF_RESET_REQUEST, 16}
1618 DEFINE_NWF_GUID!{GUID_NWF_NIC_POWER_STATE, 17}
1619 DEFINE_NWF_GUID!{GUID_NWF_OPTIONAL_CAPABILITY, 18}
1620 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OPTIONAL_CAPABILITY, 19}
1621 DEFINE_NWF_GUID!{GUID_NWF_STATION_ID, 20}
1622 DEFINE_NWF_GUID!{GUID_NWF_MEDIUM_OCCUPANCY_LIMIT, 21}
1623 DEFINE_NWF_GUID!{GUID_NWF_CF_POLLABLE, 22}
1624 DEFINE_NWF_GUID!{GUID_NWF_CFP_PERIOD, 23}
1625 DEFINE_NWF_GUID!{GUID_NWF_CFP_MAX_DURATION, 24}
1626 DEFINE_NWF_GUID!{GUID_NWF_POWER_MGMT_MODE, 25}
1627 DEFINE_NWF_GUID!{GUID_NWF_OPERATIONAL_RATE_SET, 26}
1628 DEFINE_NWF_GUID!{GUID_NWF_BEACON_PERIOD, 27}
1629 DEFINE_NWF_GUID!{GUID_NWF_DTIM_PERIOD, 28}
1630 DEFINE_NWF_GUID!{GUID_NWF_WEP_ICV_ERROR_COUNT, 29}
1631 DEFINE_NWF_GUID!{GUID_NWF_MAC_ADDRESS, 30}
1632 DEFINE_NWF_GUID!{GUID_NWF_RTS_THRESHOLD, 31}
1633 DEFINE_NWF_GUID!{GUID_NWF_SHORT_RETRY_LIMIT, 32}
1634 DEFINE_NWF_GUID!{GUID_NWF_LONG_RETRY_LIMIT, 33}
1635 DEFINE_NWF_GUID!{GUID_NWF_FRAGMENTATION_THRESHOLD, 34}
1636 DEFINE_NWF_GUID!{GUID_NWF_MAX_TRANSMIT_MSDU_LIFETIME, 35}
1637 DEFINE_NWF_GUID!{GUID_NWF_MAX_RECEIVE_LIFETIME, 36}
1638 DEFINE_NWF_GUID!{GUID_NWF_COUNTERS_ENTRY, 37}
1639 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_PHY_TYPES, 38}
1640 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_REG_DOMAIN, 39}
1641 DEFINE_NWF_GUID!{GUID_NWF_TEMP_TYPE, 40}
1642 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_TX_ANTENNA, 41}
1643 DEFINE_NWF_GUID!{GUID_NWF_DIVERSITY_SUPPORT, 42}
1644 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_RX_ANTENNA, 43}
1645 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_POWER_LEVELS, 44}
1646 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_TX_POWER_LEVEL, 45}
1647 DEFINE_NWF_GUID!{GUID_NWF_HOP_TIME, 46}
1648 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CHANNEL_NUMBER, 47}
1649 DEFINE_NWF_GUID!{GUID_NWF_MAX_DWELL_TIME, 48}
1650 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_DWELL_TIME, 49}
1651 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_SET, 50}
1652 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PATTERN, 51}
1653 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_INDEX, 52}
1654 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CHANNEL, 53}
1655 DEFINE_NWF_GUID!{GUID_NWF_CCA_MODE_SUPPORTED, 54}
1656 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CCA_MODE, 55}
1657 DEFINE_NWF_GUID!{GUID_NWF_ED_THRESHOLD, 56}
1658 DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_TIMER_MAX, 57}
1659 DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_COUNT_MAX, 58}
1660 DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_TIMER_MIN, 59}
1661 DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_COUNT_MIN, 60}
1662 DEFINE_NWF_GUID!{GUID_NWF_REG_DOMAINS_SUPPORT_VALUE, 61}
1663 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_TX_ANTENNA, 62}
1664 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_RX_ANTENNA, 63}
1665 DEFINE_NWF_GUID!{GUID_NWF_DIVERSITY_SELECTION_RX, 64}
1666 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_DATA_RATES_VALUE, 65}
1667 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_FREQUENCY, 66}
1668 DEFINE_NWF_GUID!{GUID_NWF_TI_THRESHOLD, 67}
1669 DEFINE_NWF_GUID!{GUID_NWF_FREQUENCY_BANDS_SUPPORTED, 68}
1670 DEFINE_NWF_GUID!{GUID_NWF_SHORT_PREAMBLE_OPTION_IMPLEMENTED, 69}
1671 DEFINE_NWF_GUID!{GUID_NWF_PBCC_OPTION_IMPLEMENTED, 70}
1672 DEFINE_NWF_GUID!{GUID_NWF_CHANNEL_AGILITY_PRESENT, 71}
1673 DEFINE_NWF_GUID!{GUID_NWF_CHANNEL_AGILITY_ENABLED, 72}
1674 DEFINE_NWF_GUID!{GUID_NWF_HR_CCA_MODE_SUPPORTED, 73}
1675 DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED, 74}
1676 DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY_ENABLED, 75}
1677 DEFINE_NWF_GUID!{GUID_NWF_COUNTRY_STRING, 76}
1678 DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY, 77}
1679 DEFINE_NWF_GUID!{GUID_NWF_EHCC_PRIME_RADIX, 78}
1680 DEFINE_NWF_GUID!{GUID_NWF_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX, 79}
1681 DEFINE_NWF_GUID!{GUID_NWF_EHCC_CAPABILITY_IMPLEMENTED, 80}
1682 DEFINE_NWF_GUID!{GUID_NWF_EHCC_CAPABILITY_ENABLED, 81}
1683 DEFINE_NWF_GUID!{GUID_NWF_HOP_ALGORITHM_ADOPTED, 82}
1684 DEFINE_NWF_GUID!{GUID_NWF_RANDOM_TABLE_FLAG, 83}
1685 DEFINE_NWF_GUID!{GUID_NWF_NUMBER_OF_HOPPING_SETS, 84}
1686 DEFINE_NWF_GUID!{GUID_NWF_HOP_MODULUS, 85}
1687 DEFINE_NWF_GUID!{GUID_NWF_HOP_OFFSET, 86}
1688 DEFINE_NWF_GUID!{GUID_NWF_HOPPING_PATTERN, 87}
1689 DEFINE_NWF_GUID!{GUID_NWF_RANDOM_TABLE_FIELD_NUMBER, 88}
1690 DEFINE_NWF_GUID!{GUID_NWF_WPA_TSC, 89}
1691 DEFINE_NWF_GUID!{GUID_NWF_RSSI_RANGE, 90}
1692 DEFINE_NWF_GUID!{GUID_NWF_RF_USAGE, 91}
1693 DEFINE_NWF_GUID!{GUID_NWF_NIC_SPECIFIC_EXTENSION, 92}
1694 DEFINE_NWF_GUID!{GUID_NWF_AP_JOIN_REQUEST, 93}
1695 DEFINE_NWF_GUID!{GUID_NWF_ERP_PBCC_OPTION_IMPLEMENTED, 94}
1696 DEFINE_NWF_GUID!{GUID_NWF_ERP_PBCC_OPTION_ENABLED, 95}
1697 DEFINE_NWF_GUID!{GUID_NWF_DSSS_OFDM_OPTION_IMPLEMENTED, 96}
1698 DEFINE_NWF_GUID!{GUID_NWF_DSSS_OFDM_OPTION_ENABLED, 97}
1699 DEFINE_NWF_GUID!{GUID_NWF_SHORT_SLOT_TIME_OPTION_IMPLEMENTED, 98}
1700 DEFINE_NWF_GUID!{GUID_NWF_SHORT_SLOT_TIME_OPTION_ENABLED, 99}
1701 DEFINE_NWF_GUID!{GUID_NWF_MAX_MAC_ADDRESS_STATES, 100}
1702 DEFINE_NWF_GUID!{GUID_NWF_RECV_SENSITIVITY_LIST, 101}
1703 DEFINE_NWF_GUID!{GUID_NWF_WME_IMPLEMENTED, 102}
1704 DEFINE_NWF_GUID!{GUID_NWF_WME_ENABLED, 103}
1705 DEFINE_NWF_GUID!{GUID_NWF_WME_AC_PARAMETERS, 104}
1706 DEFINE_NWF_GUID!{GUID_NWF_WME_UPDATE_IE, 105}
1707 DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_QUEUES_SUPPORTED, 106}
1708 DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_DURATION, 107}
1709 DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_MEDIUM_TIME, 108}
1710 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_OFDM_FREQUENCY_LIST, 109}
1711 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_DSSS_CHANNEL_LIST, 110}
1712 DEFINE_NWF_GUID!{GUID_NWF_AUTO_CONFIG_ENABLED, 120}
1713 DEFINE_NWF_GUID!{GUID_NWF_ENUM_BSS_LIST, 121}
1714 DEFINE_NWF_GUID!{GUID_NWF_FLUSH_BSS_LIST, 122}
1715 DEFINE_NWF_GUID!{GUID_NWF_POWER_MGMT_REQUEST, 123}
1716 DEFINE_NWF_GUID!{GUID_NWF_DESIRED_SSID_LIST, 124}
1717 DEFINE_NWF_GUID!{GUID_NWF_EXCLUDED_MAC_ADDRESS_LIST, 125}
1718 DEFINE_NWF_GUID!{GUID_NWF_DESIRED_BSSID_LIST, 126}
1719 DEFINE_NWF_GUID!{GUID_NWF_DESIRED_BSS_TYPE, 127}
1720 DEFINE_NWF_GUID!{GUID_NWF_PMKID_LIST, 128}
1721 DEFINE_NWF_GUID!{GUID_NWF_CONNECT_REQUEST, 129}
1722 DEFINE_NWF_GUID!{GUID_NWF_EXCLUDE_UNENCRYPTED, 130}
1723 DEFINE_NWF_GUID!{GUID_NWF_STATISTICS, 131}
1724 DEFINE_NWF_GUID!{GUID_NWF_PRIVACY_EXEMPTION_LIST, 132}
1725 DEFINE_NWF_GUID!{GUID_NWF_ENABLED_AUTHENTICATION_ALGORITHM, 133}
1726 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_UNICAST_ALGORITHM_PAIR, 134}
1727 DEFINE_NWF_GUID!{GUID_NWF_ENABLED_UNICAST_CIPHER_ALGORITHM, 135}
1728 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_MULTICAST_ALGORITHM_PAIR, 136}
1729 DEFINE_NWF_GUID!{GUID_NWF_ENABLED_MULTICAST_CIPHER_ALGORITHM, 137}
1730 DEFINE_NWF_GUID!{GUID_NWF_CIPHER_DEFAULT_KEY_ID, 138}
1731 DEFINE_NWF_GUID!{GUID_NWF_CIPHER_DEFAULT_KEY, 139}
1732 DEFINE_NWF_GUID!{GUID_NWF_CIPHER_KEY_MAPPING_KEY, 140}
1733 DEFINE_NWF_GUID!{GUID_NWF_ENUM_ASSOCIATION_INFO, 141}
1734 DEFINE_NWF_GUID!{GUID_NWF_DISCONNECT_REQUEST, 142}
1735 DEFINE_NWF_GUID!{GUID_NWF_UNICAST_USE_GROUP_ENABLED, 143}
1736 DEFINE_NWF_GUID!{GUID_NWF_PHY_STATE, 144}
1737 DEFINE_NWF_GUID!{GUID_NWF_DESIRED_PHY_LIST, 145}
1738 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PHY_ID, 146}
1739 DEFINE_NWF_GUID!{GUID_NWF_MEDIA_STREAMING_ENABLED, 147}
1740 DEFINE_NWF_GUID!{GUID_NWF_UNREACHABLE_DETECTION_THRESHOLD, 148}
1741 DEFINE_NWF_GUID!{GUID_NWF_ACTIVE_PHY_LIST, 149}
1742 DEFINE_NWF_GUID!{GUID_NWF_EXTSTA_CAPABILITY, 150}
1743 DEFINE_NWF_GUID!{GUID_NWF_DATA_RATE_MAPPING_TABLE, 151}
1744 DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_COUNTRY_OR_REGION_STRING, 152}
1745 DEFINE_NWF_GUID!{GUID_NWF_DESIRED_COUNTRY_OR_REGION_STRING, 153}
1746 DEFINE_NWF_GUID!{GUID_NWF_PORT_STATE_NOTIFICATION, 154}
1747 DEFINE_NWF_GUID!{GUID_NWF_IBSS_PARAMS, 155}
1748 DEFINE_NWF_GUID!{GUID_NWF_QOS_PARAMS, 156}
1749 DEFINE_NWF_GUID!{GUID_NWF_SAFE_MODE_ENABLED, 157}
1750 DEFINE_NWF_GUID!{GUID_NWF_HIDDEN_NETWORK_ENABLED, 158}
1751 DEFINE_NWF_GUID!{GUID_NWF_ASSOCIATION_PARAMS, 159}
1752 DEFINE_NWF_GUID!{GUID_NWF_CURRENT_ADDRESS, 1024 + 2}
1753 DEFINE_NWF_GUID!{GUID_NWF_PERMANENT_ADDRESS, 1024 + 3}
1754 DEFINE_NWF_GUID!{GUID_NWF_MULTICAST_LIST, 1024 + 4}
1755 DEFINE_NWF_GUID!{GUID_NWF_MAXIMUM_LIST_SIZE, 1024 + 5}
1756 pub const DOT11_EXTAP_ATTRIBUTES_REVISION_1: UCHAR = 1;
1757 STRUCT!{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 }}
1773 pub type PDOT11_EXTAP_ATTRIBUTES = *mut DOT11_EXTAP_ATTRIBUTES;
1774 pub const DOT11_INCOMING_ASSOC_STARTED_PARAMETERS_REVISION_1: UCHAR = 1;
1775 STRUCT!{struct DOT11_INCOMING_ASSOC_STARTED_PARAMETERS {
1776 Header: NDIS_OBJECT_HEADER,
1777 PeerMacAddr: DOT11_MAC_ADDRESS,
1778 }}
1779 pub type PDOT11_INCOMING_ASSOC_STARTED_PARAMETERS = *mut DOT11_INCOMING_ASSOC_STARTED_PARAMETERS;
1780 pub const DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS_REVISION_1: UCHAR = 1;
1781 STRUCT!{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 }}
1788 pub type PDOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS =
1789 *mut DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS;
1790 pub const DOT11_ASSOC_ERROR_SOURCE_OS: UCHAR = 0x0;
1791 pub const DOT11_ASSOC_ERROR_SOURCE_REMOTE: UCHAR = 0x01;
1792 pub const DOT11_ASSOC_ERROR_SOURCE_OTHER: UCHAR = 0xFF;
1793 pub const DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
1794 STRUCT!{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 }}
1813 pub type PDOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS =
1814 *mut DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS;
1815 pub const DOT11_STOP_AP_PARAMETERS_REVISION_1: UCHAR = 1;
1816 STRUCT!{struct DOT11_STOP_AP_PARAMETERS {
1817 Header: NDIS_OBJECT_HEADER,
1818 ulReason: ULONG,
1819 }}
1820 pub type PDOT11_STOP_AP_PARAMETERS = *mut DOT11_STOP_AP_PARAMETERS;
1821 pub const DOT11_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE: ULONG = 0x1;
1822 pub const DOT11_STOP_AP_REASON_CHANNEL_NOT_AVAILABLE: ULONG = 0x2;
1823 pub const DOT11_STOP_AP_REASON_AP_ACTIVE: ULONG = 0x3;
1824 pub const DOT11_STOP_AP_REASON_IHV_START: ULONG = 0xFF000000;
1825 pub const DOT11_STOP_AP_REASON_IHV_END: ULONG = 0xFFFFFFFF;
1826 pub const DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_REVISION_1: UCHAR = 1;
1827 UNION!{union DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_u {
1828 [u32; 1],
1829 ulChannel ulChannel_mut: ULONG,
1830 ulFrequency ulFrequency_mut: ULONG,
1831 }}
1832 STRUCT!{struct DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS {
1833 Header: NDIS_OBJECT_HEADER,
1834 ulPhyId: ULONG,
1835 u: DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_u,
1836 }}
1837 pub type PDOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS = *mut DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS;
1838 pub const DOT11_CAN_SUSTAIN_AP_PARAMETERS_REVISION_1: UCHAR = 1;
1839 STRUCT!{struct DOT11_CAN_SUSTAIN_AP_PARAMETERS {
1840 Header: NDIS_OBJECT_HEADER,
1841 ulReason: ULONG,
1842 }}
1843 pub type PDOT11_CAN_SUSTAIN_AP_PARAMETERS = *mut DOT11_CAN_SUSTAIN_AP_PARAMETERS;
1844 pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_START: ULONG = 0xFF000000;
1845 pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_END: ULONG = 0xFFFFFFFF;
1846 pub const NWF_EXTAP_OID: u32 = 0x03;
1847 pub const OID_DOT11_WPS_ENABLED: u32 = NWF_DEFINE_OID!(0x01, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1848 pub const OID_DOT11_START_AP_REQUEST: u32 =
1849 NWF_DEFINE_OID!(0x02, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1850 pub const OID_DOT11_AVAILABLE_CHANNEL_LIST: u32 =
1851 NWF_DEFINE_OID!(0x03, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1852 pub const DOT11_AVAILABLE_CHANNEL_LIST_REVISION_1: UCHAR = 1;
1853 STRUCT!{struct DOT11_AVAILABLE_CHANNEL_LIST {
1854 Header: NDIS_OBJECT_HEADER,
1855 uNumOfEntries: ULONG,
1856 uTotalNumOfEntries: ULONG,
1857 uChannelNumber: [ULONG; 1],
1858 }}
1859 pub type PDOT11_AVAILABLE_CHANNEL_LIST = *mut DOT11_AVAILABLE_CHANNEL_LIST;
1860 pub const OID_DOT11_AVAILABLE_FREQUENCY_LIST: u32 =
1861 NWF_DEFINE_OID!(0x04, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1862 pub const DOT11_AVAILABLE_FREQUENCY_LIST_REVISION_1: UCHAR = 1;
1863 STRUCT!{struct DOT11_AVAILABLE_FREQUENCY_LIST {
1864 Header: NDIS_OBJECT_HEADER,
1865 uNumOfEntries: ULONG,
1866 uTotalNumOfEntries: ULONG,
1867 uFrequencyValue: [ULONG; 1],
1868 }}
1869 pub type PDOT11_AVAILABLE_FREQUENCY_LIST = *mut DOT11_AVAILABLE_FREQUENCY_LIST;
1870 pub const OID_DOT11_DISASSOCIATE_PEER_REQUEST: u32 =
1871 NWF_DEFINE_OID!(0x05, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1872 pub const DOT11_DISASSOCIATE_PEER_REQUEST_REVISION_1: UCHAR = 1;
1873 STRUCT!{struct DOT11_DISASSOCIATE_PEER_REQUEST {
1874 Header: NDIS_OBJECT_HEADER,
1875 PeerMacAddr: DOT11_MAC_ADDRESS,
1876 usReason: USHORT,
1877 }}
1878 pub type PDOT11_DISASSOCIATE_PEER_REQUEST = *mut DOT11_DISASSOCIATE_PEER_REQUEST;
1879 pub const OID_DOT11_INCOMING_ASSOCIATION_DECISION: u32 =
1880 NWF_DEFINE_OID!(0x06, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1881 pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_1: UCHAR = 1;
1882 STRUCT!{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 }}
1890 pub type PDOT11_INCOMING_ASSOC_DECISION = *mut DOT11_INCOMING_ASSOC_DECISION;
1891 pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_2: UCHAR = 2;
1892 STRUCT!{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 }}
1901 pub type PDOT11_INCOMING_ASSOC_DECISION_V2 = *mut DOT11_INCOMING_ASSOC_DECISION_V2;
1902 pub const OID_DOT11_ADDITIONAL_IE: u32 = NWF_DEFINE_OID!(0x07, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1903 pub const DOT11_ADDITIONAL_IE_REVISION_1: UCHAR = 1;
1904 STRUCT!{struct DOT11_ADDITIONAL_IE {
1905 Header: NDIS_OBJECT_HEADER,
1906 uBeaconIEsOffset: ULONG,
1907 uBeaconIEsLength: ULONG,
1908 uResponseIEsOffset: ULONG,
1909 uResponseIEsLength: ULONG,
1910 }}
1911 pub type PDOT11_ADDITIONAL_IE = *mut DOT11_ADDITIONAL_IE;
1912 pub const DOT11_EXTAP_SEND_CONTEXT_REVISION_1: UCHAR = 1;
1913 pub const DOT11_EXTAP_RECV_CONTEXT_REVISION_1: UCHAR = 1;
1914 pub const OID_DOT11_ENUM_PEER_INFO: u32 = NWF_DEFINE_OID!(0x08, NWF_EXTAP_OID, NWF_MANDATORY_OID);
1915 STRUCT!{struct DOT11_PEER_STATISTICS {
1916 ullDecryptSuccessCount: ULONGLONG,
1917 ullDecryptFailureCount: ULONGLONG,
1918 ullTxPacketSuccessCount: ULONGLONG,
1919 ullTxPacketFailureCount: ULONGLONG,
1920 ullRxPacketSuccessCount: ULONGLONG,
1921 ullRxPacketFailureCount: ULONGLONG,
1922 }}
1923 pub type PDOT11_PEER_STATISTICS = *mut DOT11_PEER_STATISTICS;
1924 STRUCT!{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 }}
1939 pub type PDOT11_PEER_INFO = *mut DOT11_PEER_INFO;
1940 pub const DOT11_PEER_INFO_LIST_REVISION_1: UCHAR = 1;
1941 STRUCT!{struct DOT11_PEER_INFO_LIST {
1942 Header: NDIS_OBJECT_HEADER,
1943 uNumOfEntries: ULONG,
1944 uTotalNumOfEntries: ULONG,
1945 PeerInfo: [DOT11_PEER_INFO; 1],
1946 }}
1947 pub type PDOT11_PEER_INFO_LIST = *mut DOT11_PEER_INFO_LIST;
1948 pub const DOT11_VWIFI_COMBINATION_REVISION_1: UCHAR = 1;
1949 STRUCT!{struct DOT11_VWIFI_COMBINATION {
1950 Header: NDIS_OBJECT_HEADER,
1951 uNumInfrastructure: ULONG,
1952 uNumAdhoc: ULONG,
1953 uNumSoftAP: ULONG,
1954 }}
1955 pub type PDOT11_VWIFI_COMBINATION = *mut DOT11_VWIFI_COMBINATION;
1956 pub const DOT11_VWIFI_COMBINATION_REVISION_2: UCHAR = 2;
1957 STRUCT!{struct DOT11_VWIFI_COMBINATION_V2 {
1958 Header: NDIS_OBJECT_HEADER,
1959 uNumInfrastructure: ULONG,
1960 uNumAdhoc: ULONG,
1961 uNumSoftAP: ULONG,
1962 uNumVirtualStation: ULONG,
1963 }}
1964 pub type PDOT11_VWIFI_COMBINATION_V2 = *mut DOT11_VWIFI_COMBINATION_V2;
1965 pub const DOT11_VWIFI_COMBINATION_REVISION_3: UCHAR = 3;
1966 STRUCT!{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 }}
1974 pub type PDOT11_VWIFI_COMBINATION_V3 = *mut DOT11_VWIFI_COMBINATION_V3;
1975 pub const DOT11_VWIFI_ATTRIBUTES_REVISION_1: UCHAR = 1;
1976 STRUCT!{struct DOT11_VWIFI_ATTRIBUTES {
1977 Header: NDIS_OBJECT_HEADER,
1978 uTotalNumOfEntries: ULONG,
1979 Combinations: [DOT11_VWIFI_COMBINATION; 1],
1980 }}
1981 pub type PDOT11_VWIFI_ATTRIBUTES = *mut DOT11_VWIFI_ATTRIBUTES;
1982 pub const NWF_VWIFI_OID: u32 = 0x04;
1983 pub const OID_DOT11_CREATE_MAC: u32 = NWF_DEFINE_OID!(0x01, NWF_VWIFI_OID, NWF_MANDATORY_OID);
1984 pub const DOT11_MAC_PARAMETERS_REVISION_1: UCHAR = 1;
1985 STRUCT!{struct DOT11_MAC_PARAMETERS {
1986 Header: NDIS_OBJECT_HEADER,
1987 uOpmodeMask: ULONG,
1988 }}
1989 pub type PDOT11_MAC_PARAMETERS = *mut DOT11_MAC_PARAMETERS;
1990 STRUCT!{struct DOT11_MAC_INFO {
1991 uReserved: ULONG,
1992 uNdisPortNumber: ULONG,
1993 MacAddr: DOT11_MAC_ADDRESS,
1994 }}
1995 pub type PDOT11_MAC_INFO = *mut DOT11_MAC_INFO;
1996 pub const OID_DOT11_DELETE_MAC: u32 = NWF_DEFINE_OID!(0x02, NWF_VWIFI_OID, NWF_MANDATORY_OID);
1997 pub const OID_DOT11_PREFERRED_MAC: u32 = NWF_DEFINE_OID!(0x03, NWF_VWIFI_OID, NWF_MANDATORY_OID);
1998 pub const OID_DOT11_VIRTUAL_STATION_CAPABILITY: u32 =
1999 NWF_DEFINE_OID!(0x04, NWF_VWIFI_OID, NWF_OPTIONAL_OID);
2000 pub const DOT11_WFD_ATTRIBUTES_REVISION_1: UCHAR = 1;
2001 STRUCT!{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 }}
2018 pub type PDOT11_WFD_ATTRIBUTES = *mut DOT11_WFD_ATTRIBUTES;
2019 pub type DOT11_WFD_GROUP_CAPABILITY = UCHAR;
2020 pub const DOT11_WFD_STATUS_SUCCESS: DOT11_WFD_STATUS_CODE = 0;
2021 pub const DOT11_WFD_STATUS_FAILED_INFORMATION_IS_UNAVAILABLE: DOT11_WFD_STATUS_CODE = 1;
2022 pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PARAMETERS: DOT11_WFD_STATUS_CODE = 2;
2023 pub const DOT11_WFD_STATUS_FAILED_LIMIT_REACHED: DOT11_WFD_STATUS_CODE = 3;
2024 pub const DOT11_WFD_STATUS_FAILED_INVALID_PARAMETERS: DOT11_WFD_STATUS_CODE = 4;
2025 pub const DOT11_WFD_STATUS_FAILED_UNABLE_TO_ACCOMODATE_REQUEST: DOT11_WFD_STATUS_CODE = 5;
2026 pub const DOT11_WFD_STATUS_FAILED_PREVIOUS_PROTOCOL_ERROR: DOT11_WFD_STATUS_CODE = 6;
2027 pub const DOT11_WFD_STATUS_FAILED_NO_COMMON_CHANNELS: DOT11_WFD_STATUS_CODE = 7;
2028 pub const DOT11_WFD_STATUS_FAILED_UNKNOWN_WFD_GROUP: DOT11_WFD_STATUS_CODE = 8;
2029 pub const DOT11_WFD_STATUS_FAILED_MATCHING_MAX_INTENT: DOT11_WFD_STATUS_CODE = 9;
2030 pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PROVISIONING_METHOD: DOT11_WFD_STATUS_CODE = 10;
2031 pub const DOT11_WFD_STATUS_FAILED_REJECTED_BY_USER: DOT11_WFD_STATUS_CODE = 11;
2032 pub const DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER: DOT11_WFD_STATUS_CODE = 12;
2033 #[inline]
WFD_STATUS_SUCCEEDED(status: DOT11_WFD_STATUS_CODE) -> bool2034 pub 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]
WFD_STATUS_FAILED(status: DOT11_WFD_STATUS_CODE) -> bool2038 pub 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 }
2041 pub const DOT11_WFD_MINOR_REASON_SUCCESS: i32 = 0;
2042 pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_FROM_WLAN_CROSS_CONNECTION_POLICY: i32 = 1;
2043 pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_NOT_MANAGED_INFRASTRUCTURE_CAPABLE: i32 = 2;
2044 pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_WFD_COEXISTENCE_POLICY: i32 = 3;
2045 pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_INFRASTRUCTURE_MANAGED_POLICY: i32 = 4;
2046 pub const DOT11_WPS_VERSION_1_0: u8 = 0x01;
2047 pub const DOT11_WPS_VERSION_2_0: u8 = 0x02;
2048 pub const DOT11_WFD_DEVICE_CAPABILITY_SERVICE_DISCOVERY: u8 = 0x01;
2049 pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_CLIENT_DISCOVERABILITY: u8 = 0x02;
2050 pub const DOT11_WFD_DEVICE_CAPABILITY_CONCURRENT_OPERATION: u8 = 0x04;
2051 pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INFRASTRUCTURE_MANAGED: u8 = 0x08;
2052 pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_DEVICE_LIMIT: u8 = 0x10;
2053 pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INVITATION_PROCEDURE: u8 = 0x20;
2054 pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_6: u8 = 0x40;
2055 pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_7: u8 = 0x80;
2056 pub const DOT11_WFD_GROUP_CAPABILITY_NONE: u8 = 0x00;
2057 pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_OWNER: u8 = 0x01;
2058 pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_GROUP: u8 = 0x02;
2059 pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_LIMIT_REACHED: u8 = 0x04;
2060 pub const DOT11_WFD_GROUP_CAPABILITY_INTRABSS_DISTRIBUTION_SUPPORTED: u8 = 0x08;
2061 pub const DOT11_WFD_GROUP_CAPABILITY_CROSS_CONNECTION_SUPPORTED: u8 = 0x10;
2062 pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_RECONNECT_SUPPORTED: u8 = 0x20;
2063 pub const DOT11_WFD_GROUP_CAPABILITY_IN_GROUP_FORMATION: u8 = 0x40;
2064 pub const DOT11_WFD_GROUP_CAPABILITY_RESERVED_7: u8 = 0x80;
2065 pub const DOT11_WFD_GROUP_CAPABILITY_EAPOL_KEY_IP_ADDRESS_ALLOCATION_SUPPORTED: u8 = 0x80;
2066 pub const DOT11_WPS_DEVICE_NAME_MAX_LENGTH: usize = 32;
2067 pub const DOT11_WPS_MAX_PASSKEY_LENGTH: usize = 8;
2068 pub const DOT11_WPS_MAX_MODEL_NAME_LENGTH: usize = 32;
2069 pub const DOT11_WPS_MAX_MODEL_NUMBER_LENGTH: usize = 32;
2070 STRUCT!{struct DOT11_WFD_DEVICE_TYPE {
2071 CategoryID: USHORT,
2072 SubCategoryID: USHORT,
2073 OUI: [UCHAR; 4],
2074 }}
2075 pub type PDOT11_WFD_DEVICE_TYPE = *mut DOT11_WFD_DEVICE_TYPE;
2076 STRUCT!{struct DOT11_WPS_DEVICE_NAME {
2077 uDeviceNameLength: ULONG,
2078 ucDeviceName: [UCHAR; DOT11_WPS_DEVICE_NAME_MAX_LENGTH],
2079 }}
2080 pub type PDOT11_WPS_DEVICE_NAME = *mut DOT11_WPS_DEVICE_NAME;
2081 STRUCT!{struct DOT11_WFD_CONFIGURATION_TIMEOUT {
2082 GOTimeout: UCHAR,
2083 ClientTimeout: UCHAR,
2084 }}
2085 pub type PDOT11_WFD_CONFIGURATION_TIMEOUT = *mut DOT11_WFD_CONFIGURATION_TIMEOUT;
2086 STRUCT!{struct DOT11_WFD_GROUP_ID {
2087 DeviceAddress: DOT11_MAC_ADDRESS,
2088 SSID: DOT11_SSID,
2089 }}
2090 pub type PDOT11_WFD_GROUP_ID = *mut DOT11_WFD_GROUP_ID;
2091 STRUCT!{#[repr(packed)] struct DOT11_WFD_GO_INTENT {
2092 Bitfields: UCHAR,
2093 }}
2094 BITFIELD!{DOT11_WFD_GO_INTENT Bitfields: UCHAR [
2095 TieBreaker set_TieBreaker[0..1],
2096 Intent set_Intent[1..8],
2097 ]}
2098 pub type PDOT11_WFD_GO_INTENT = *mut DOT11_WFD_GO_INTENT;
2099 STRUCT!{struct DOT11_WFD_CHANNEL {
2100 CountryRegionString: DOT11_COUNTRY_OR_REGION_STRING,
2101 OperatingClass: UCHAR,
2102 ChannelNumber: UCHAR,
2103 }}
2104 pub type PDOT11_WFD_CHANNEL = *mut DOT11_WFD_CHANNEL;
2105 ENUM!{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 }}
2114 pub type PDOT11_WPS_CONFIG_METHOD = *mut DOT11_WPS_CONFIG_METHOD;
2115 ENUM!{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 }}
2127 pub type PDOT11_WPS_DEVICE_PASSWORD_ID = *mut DOT11_WPS_DEVICE_PASSWORD_ID;
2128 STRUCT!{struct WFDSVC_CONNECTION_CAPABILITY {
2129 bNew: BOOLEAN,
2130 bClient: BOOLEAN,
2131 bGO: BOOLEAN,
2132 }}
2133 pub type PWFDSVC_CONNECTION_CAPABILITY = *mut WFDSVC_CONNECTION_CAPABILITY;
2134 pub const WFDSVC_CONNECTION_CAPABILITY_NEW: BOOLEAN = 0x01;
2135 pub const WFDSVC_CONNECTION_CAPABILITY_CLIENT: BOOLEAN = 0x02;
2136 pub const WFDSVC_CONNECTION_CAPABILITY_GO: BOOLEAN = 0x04;
2137 STRUCT!{struct DOT11_WFD_SERVICE_HASH_LIST {
2138 ServiceHashCount: USHORT,
2139 ServiceHash: [DOT11_WFD_SERVICE_HASH; 1],
2140 }}
2141 pub type PDOT11_WFD_SERVICE_HASH_LIST = *mut DOT11_WFD_SERVICE_HASH_LIST;
2142 STRUCT!{struct DOT11_WFD_ADVERTISEMENT_ID {
2143 AdvertisementID: ULONG,
2144 ServiceAddress: DOT11_MAC_ADDRESS,
2145 }}
2146 pub type PDOT11_WFD_ADVERTISEMENT_ID = *mut DOT11_WFD_ADVERTISEMENT_ID;
2147 STRUCT!{struct DOT11_WFD_SESSION_ID {
2148 SessionID: ULONG,
2149 SessionAddress: DOT11_MAC_ADDRESS,
2150 }}
2151 pub type PDOT11_WFD_SESSION_ID = *mut DOT11_WFD_SESSION_ID;
2152 STRUCT!{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 }}
2158 pub type PDOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR = *mut DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR;
2159 STRUCT!{struct DOT11_WFD_ADVERTISED_SERVICE_LIST {
2160 ServiceCount: USHORT,
2161 AdvertisedService: [DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR; 1],
2162 }}
2163 pub type PDOT11_WFD_ADVERTISED_SERVICE_LIST = *mut DOT11_WFD_ADVERTISED_SERVICE_LIST;
2164 pub const DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2165 pub const DOT11_WFD_DISCOVER_COMPLETE_MAX_LIST_SIZE: ULONG = 128;
2166 STRUCT!{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 }}
2174 pub type PDOT11_WFD_DISCOVER_COMPLETE_PARAMETERS = *mut DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS;
2175 pub const DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2176 STRUCT!{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 }}
2184 pub type PDOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS =
2185 *mut DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS;
2186 pub const DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2187 STRUCT!{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 }}
2195 pub type PDOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS =
2196 *mut DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS;
2197 pub const DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2198 STRUCT!{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 }}
2206 pub type PDOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS =
2207 *mut DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS;
2208 pub const DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2209 STRUCT!{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 }}
2217 pub type PDOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS =
2218 *mut DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS;
2219 pub const DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2220 STRUCT!{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 }}
2228 pub type PDOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS =
2229 *mut DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS;
2230 pub const DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: UCHAR = 1;
2231 STRUCT!{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 }}
2238 pub type PDOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS =
2239 *mut DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS;
2240 pub const DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2241 STRUCT!{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 }}
2250 pub type PDOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS =
2251 *mut DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS;
2252 pub const DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2253 STRUCT!{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 }}
2262 pub type PDOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS =
2263 *mut DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS;
2264 pub const DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2265 STRUCT!{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 }}
2273 pub type PDOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS =
2274 *mut DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS;
2275 pub const DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2276 STRUCT!{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 }}
2284 pub type PDOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS =
2285 *mut DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS;
2286 pub const DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2287 STRUCT!{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 }}
2296 pub type PDOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS =
2297 *mut DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS;
2298 pub const DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2299 STRUCT!{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 }}
2308 pub type PDOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS =
2309 *mut DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS;
2310 pub const DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2311 STRUCT!{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 }}
2319 pub type PDOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS =
2320 *mut DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS;
2321 pub const DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2322 STRUCT!{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 }}
2330 pub type PDOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS =
2331 *mut DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS;
2332 pub const DOT11_ANQP_QUERY_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
2333 ENUM!{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 }}
2343 pub type PDOT11_ANQP_QUERY_RESULT = *mut DOT11_ANQP_QUERY_RESULT;
2344 STRUCT!{struct DOT11_ANQP_QUERY_COMPLETE_PARAMETERS {
2345 Header: NDIS_OBJECT_HEADER,
2346 Status: DOT11_ANQP_QUERY_RESULT,
2347 hContext: HANDLE,
2348 uResponseLength: ULONG,
2349 }}
2350 pub type PDOT11_ANQP_QUERY_COMPLETE_PARAMETERS = *mut DOT11_ANQP_QUERY_COMPLETE_PARAMETERS;
2351 pub const NWF_WFD_DEVICE_OID: u32 = 0x05;
2352 pub const NWF_WFD_ROLE_OID: u32 = 0x06;
2353 pub const OID_DOT11_WFD_DEVICE_CAPABILITY: u32 =
2354 NWF_DEFINE_OID!(0x01, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2355 pub const DOT11_WFD_DEVICE_CAPABILITY_CONFIG_REVISION_1: UCHAR = 1;
2356 STRUCT!{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 }}
2366 pub type PDOT11_WFD_DEVICE_CAPABILITY_CONFIG = *mut DOT11_WFD_DEVICE_CAPABILITY_CONFIG;
2367 pub const OID_DOT11_WFD_GROUP_OWNER_CAPABILITY: u32 =
2368 NWF_DEFINE_OID!(0x02, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2369 pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_1: UCHAR = 1;
2370 STRUCT!{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 }}
2379 pub type PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG = *mut DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG;
2380 pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_2: UCHAR = 2;
2381 STRUCT!{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 }}
2391 pub type PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 =
2392 *mut DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2;
2393 pub const OID_DOT11_WFD_DEVICE_INFO: u32 =
2394 NWF_DEFINE_OID!(0x03, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2395 pub const DOT11_WFD_DEVICE_INFO_REVISION_1: UCHAR = 1;
2396 STRUCT!{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 }}
2403 pub type PDOT11_WFD_DEVICE_INFO = *mut DOT11_WFD_DEVICE_INFO;
2404 pub const OID_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST: u32 =
2405 NWF_DEFINE_OID!(0x04, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2406 pub const DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1: UCHAR = 1;
2407 STRUCT!{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 }}
2413 pub 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);
2416 pub const OID_DOT11_WFD_DISCOVER_REQUEST: u32 =
2417 NWF_DEFINE_OID!(0x05, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2418 ENUM!{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 }}
2425 pub type PDOT11_WFD_DISCOVER_TYPE = *mut DOT11_WFD_DISCOVER_TYPE;
2426 ENUM!{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 }}
2431 pub type PDOT11_WFD_SCAN_TYPE = *mut DOT11_WFD_SCAN_TYPE;
2432 pub const DISCOVERY_FILTER_BITMASK_DEVICE: UCHAR = 0x1;
2433 pub const DISCOVERY_FILTER_BITMASK_GO: UCHAR = 0x2;
2434 pub const DISCOVERY_FILTER_BITMASK_ANY: UCHAR = 0xF;
2435 STRUCT!{struct DOT11_WFD_DISCOVER_DEVICE_FILTER {
2436 DeviceID: DOT11_MAC_ADDRESS,
2437 ucBitmask: UCHAR,
2438 GroupSSID: DOT11_SSID,
2439 }}
2440 pub type PDOT11_WFD_DISCOVER_DEVICE_FILTER = *mut DOT11_WFD_DISCOVER_DEVICE_FILTER;
2441 pub const DOT11_WFD_DISCOVER_REQUEST_REVISION_1: UCHAR = 1;
2442 STRUCT!{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 }}
2453 pub type PDOT11_WFD_DISCOVER_REQUEST = *mut DOT11_WFD_DISCOVER_REQUEST;
2454 pub const OID_DOT11_WFD_ENUM_DEVICE_LIST: u32 =
2455 NWF_DEFINE_OID!(0x06, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2456 pub const DOT11_DEVICE_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
2457 STRUCT!{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 }}
2475 pub type PDOT11_WFD_DEVICE_ENTRY = *mut DOT11_WFD_DEVICE_ENTRY;
2476 pub const OID_DOT11_WFD_LISTEN_STATE_DISCOVERABILITY: u32 =
2477 NWF_DEFINE_OID!(0x07, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2478 pub const DOT11_WFD_DEVICE_NOT_DISCOVERABLE: i32 = 0;
2479 pub const DOT11_WFD_DEVICE_AUTO_AVAILABILITY: i32 = 16;
2480 pub const DOT11_WFD_DEVICE_HIGH_AVAILABILITY: i32 = 24;
2481 pub const OID_DOT11_WFD_ADDITIONAL_IE: u32 =
2482 NWF_DEFINE_OID!(0x08, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2483 pub const DOT11_WFD_ADDITIONAL_IE_REVISION_1: UCHAR = 1;
2484 STRUCT!{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 }}
2493 pub type PDOT11_WFD_ADDITIONAL_IE = *mut DOT11_WFD_ADDITIONAL_IE;
2494 pub const OID_DOT11_WFD_FLUSH_DEVICE_LIST: u32 =
2495 NWF_DEFINE_OID!(0x09, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2496 pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_REQUEST: u32 =
2497 NWF_DEFINE_OID!(0x0A, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2498 pub const DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2499 STRUCT!{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 }}
2511 pub type PDOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS =
2512 *mut DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS;
2513 pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_RESPONSE: u32 =
2514 NWF_DEFINE_OID!(0x0B, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2515 pub const DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2516 STRUCT!{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 }}
2532 pub type PDOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS =
2533 *mut DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS;
2534 pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_CONFIRMATION: u32 =
2535 NWF_DEFINE_OID!(0x0C, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2536 pub const DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: UCHAR = 1;
2537 STRUCT!{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 }}
2550 pub type PDOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS =
2551 *mut DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS;
2552 pub const OID_DOT11_WFD_SEND_INVITATION_REQUEST: u32 =
2553 NWF_DEFINE_OID!(0x0D, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2554 STRUCT!{#[repr(packed)] struct DOT11_WFD_INVITATION_FLAGS {
2555 Bitfields: UCHAR,
2556 }}
2557 BITFIELD!{DOT11_WFD_INVITATION_FLAGS Bitfields: UCHAR [
2558 InvitationType set_InvitationType[0..1],
2559 Reserved set_Reserved[1..8],
2560 ]}
2561 pub type PDOT11_WFD_INVITATION_FLAGS = *mut DOT11_WFD_INVITATION_FLAGS;
2562 pub const DOT11_SEND_INVITATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2563 STRUCT!{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 }}
2579 pub type PDOT11_SEND_INVITATION_REQUEST_PARAMETERS =
2580 *mut DOT11_SEND_INVITATION_REQUEST_PARAMETERS;
2581 pub const OID_DOT11_WFD_SEND_INVITATION_RESPONSE: u32 =
2582 NWF_DEFINE_OID!(0x0E, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2583 pub const DOT11_SEND_INVITATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2584 STRUCT!{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 }}
2599 pub type PDOT11_SEND_INVITATION_RESPONSE_PARAMETERS =
2600 *mut DOT11_SEND_INVITATION_RESPONSE_PARAMETERS;
2601 pub const OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_REQUEST: u32 =
2602 NWF_DEFINE_OID!(0x0F, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2603 pub const DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
2604 STRUCT!{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 }}
2615 pub type PDOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS =
2616 *mut DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS;
2617 pub const OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_RESPONSE: u32 =
2618 NWF_DEFINE_OID!(0x10, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2619 pub const DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
2620 STRUCT!{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 }}
2629 pub type PDOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS =
2630 *mut DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS;
2631 pub const OID_DOT11_WFD_GET_DIALOG_TOKEN: u32 =
2632 NWF_DEFINE_OID!(0x11, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2633 pub const OID_DOT11_WFD_STOP_DISCOVERY: u32 =
2634 NWF_DEFINE_OID!(0x12, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2635 pub const OID_DOT11_WFD_ENABLE_HRDSSS_DEVICES: u32 =
2636 NWF_DEFINE_OID!(0x13, NWF_WFD_DEVICE_OID, NWF_OPTIONAL_OID);
2637 pub const OID_DOT11_WFD_DEVICE_LISTEN_CHANNEL: u32 =
2638 NWF_DEFINE_OID!(0x14, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
2639 pub const DOT11_WFD_DEVICE_LISTEN_CHANNEL_REVISION_1: UCHAR = 1;
2640 STRUCT!{struct DOT11_WFD_DEVICE_LISTEN_CHANNEL {
2641 Header: NDIS_OBJECT_HEADER,
2642 ChannelNumber: UCHAR,
2643 }}
2644 pub type PDOT11_WFD_DEVICE_LISTEN_CHANNEL = *mut DOT11_WFD_DEVICE_LISTEN_CHANNEL;
2645 pub const OID_DOT11_WFD_DESIRED_GROUP_ID: u32 =
2646 NWF_DEFINE_OID!(0x01, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2647 pub const OID_DOT11_WFD_START_GO_REQUEST: u32 =
2648 NWF_DEFINE_OID!(0x02, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2649 pub const OID_DOT11_WFD_GROUP_START_PARAMETERS: u32 =
2650 NWF_DEFINE_OID!(0x03, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2651 pub const DOT11_WFD_GROUP_START_PARAMETERS_REVISION_1: UCHAR = 1;
2652 STRUCT!{struct DOT11_WFD_GROUP_START_PARAMETERS {
2653 Header: NDIS_OBJECT_HEADER,
2654 AdvertisedOperatingChannel: DOT11_WFD_CHANNEL,
2655 }}
2656 pub type PDOT11_WFD_GROUP_START_PARAMETERS = *mut DOT11_WFD_GROUP_START_PARAMETERS;
2657 pub const OID_DOT11_WFD_CONNECT_TO_GROUP_REQUEST: u32 =
2658 NWF_DEFINE_OID!(0x04, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2659 pub const OID_DOT11_WFD_DISCONNECT_FROM_GROUP_REQUEST: u32 =
2660 NWF_DEFINE_OID!(0x05, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2661 pub const OID_DOT11_WFD_GROUP_JOIN_PARAMETERS: u32 =
2662 NWF_DEFINE_OID!(0x06, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
2663 pub const DOT11_WFD_GROUP_JOIN_PARAMETERS_REVISION_1: UCHAR = 1;
2664 STRUCT!{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 }}
2671 pub type PDOT11_WFD_GROUP_JOIN_PARAMETERS = *mut DOT11_WFD_GROUP_JOIN_PARAMETERS;
2672 pub const NWF_POWER_SAVE_OID: u32 = 0x07;
2673 pub const OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED: u32 =
2674 NWF_DEFINE_OID!(0x01, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
2675 pub const DOT11_POWER_MGMT_AUTO_MODE_ENABLED_REVISION_1: UCHAR = 1;
2676 STRUCT!{struct DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO {
2677 Header: NDIS_OBJECT_HEADER,
2678 bEnabled: BOOLEAN,
2679 }}
2680 pub type PDOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO = *mut DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO;
2681 pub const OID_DOT11_POWER_MGMT_MODE_STATUS: u32 =
2682 NWF_DEFINE_OID!(0x02, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
2683 ENUM!{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 }}
2691 pub const DOT11_POWER_MGMT_MODE_STATUS_INFO_REVISION_1: UCHAR = 1;
2692 STRUCT!{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 }}
2698 pub type PDOT11_POWER_MGMT_MODE_STATUSINFO = *mut DOT11_POWER_MGMT_MODE_STATUS_INFO;
2699 pub const OID_DOT11_OFFLOAD_NETWORK_LIST: u32 =
2700 NWF_DEFINE_OID!(0x03, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
2701 pub const DOT11_MAX_CHANNEL_HINTS: usize = 4;
2702 pub const DOT11_INVALID_CHANNEL_NUMBER: ULONG = 0;
2703 STRUCT!{struct DOT11_CHANNEL_HINT {
2704 Dot11PhyType: DOT11_PHY_TYPE,
2705 uChannelNumber: ULONG,
2706 }}
2707 pub type PDOT11_CHANNEL_HINT = *mut DOT11_CHANNEL_HINT;
2708 STRUCT!{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 }}
2714 pub type PDOT11_OFFLOAD_NETWORK = *mut DOT11_OFFLOAD_NETWORK;
2715 pub const DOT11_NLO_FLAG_STOP_NLO_INDICATION: ULONG = 0x00000001;
2716 pub const DOT11_NLO_FLAG_SCAN_ON_AOAC_PLATFORM: ULONG = 0x00000002;
2717 pub const DOT11_NLO_FLAG_SCAN_AT_SYSTEM_RESUME: ULONG = 0x00000004;
2718 pub const DOT11_OFFLOAD_NETWORK_LIST_REVISION_1: UCHAR = 1;
2719 STRUCT!{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 }}
2728 pub type PDOT11_OFFLOAD_NETWORK_LIST_INFO = *mut DOT11_OFFLOAD_NETWORK_LIST_INFO;
2729 pub const DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS_REVISION_1: UCHAR = 1;
2730 STRUCT!{struct DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS {
2731 Header: NDIS_OBJECT_HEADER,
2732 Status: NDIS_STATUS,
2733 }}
2734 pub type PDOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS = *mut DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS;
2735 pub const NWF_MANUFACTURING_OID: u32 = 0x08;
2736 pub const OID_DOT11_MANUFACTURING_TEST: u32 =
2737 NWF_DEFINE_OID!(0x01, NWF_MANUFACTURING_OID, NWF_OPTIONAL_OID);
2738 pub const DOT11_MANUFACTURING_TEST_REVISION_1: UCHAR = 1;
2739 ENUM!{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 }}
2753 pub type PDOT11_MANUFACTURING_TEST_TYPE = *mut DOT11_MANUFACTURING_TEST_TYPE;
2754 STRUCT!{struct DOT11_MANUFACTURING_TEST {
2755 dot11ManufacturingTestType: DOT11_MANUFACTURING_TEST_TYPE,
2756 uBufferLength: ULONG,
2757 ucBuffer: [UCHAR; 1],
2758 }}
2759 pub type PDOT11_MANUFACTURING_TEST = *mut DOT11_MANUFACTURING_TEST;
2760 ENUM!{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 }}
2765 pub type PDOT11_MANUFACTURING_SELF_TEST_TYPE = *mut DOT11_MANUFACTURING_SELF_TEST_TYPE;
2766 STRUCT!{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 }}
2774 pub type PDOT11_MANUFACTURING_SELF_TEST_SET_PARAMS =
2775 *mut DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS;
2776 STRUCT!{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 }}
2785 pub type PDOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS =
2786 *mut DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS;
2787 ENUM!{enum DOT11_BAND {
2788 dot11_band_2p4g = 1,
2789 dot11_band_4p9g = 2,
2790 dot11_band_5g = 3,
2791 }}
2792 pub type PDOT11_BAND = *mut DOT11_BAND;
2793 STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX {
2794 bEnabled: BOOLEAN,
2795 Dot11Band: DOT11_BAND,
2796 uChannel: ULONG,
2797 PowerLevel: LONG,
2798 }}
2799 pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_RX = *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX;
2800 STRUCT!{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 }}
2808 pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_TX = *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX;
2809 STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC {
2810 Dot11Band: DOT11_BAND,
2811 uChannel: ULONG,
2812 ADCPowerLevel: LONG,
2813 }}
2814 pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC =
2815 *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC;
2816 STRUCT!{struct DOT11_MANUFACTURING_TEST_SET_DATA {
2817 uKey: ULONG,
2818 uOffset: ULONG,
2819 uBufferLength: ULONG,
2820 ucBufferIn: [UCHAR; 1],
2821 }}
2822 pub type PDOT11_MANUFACTURING_TEST_SET_DATA = *mut DOT11_MANUFACTURING_TEST_SET_DATA;
2823 STRUCT!{struct DOT11_MANUFACTURING_TEST_QUERY_DATA {
2824 uKey: ULONG,
2825 uOffset: ULONG,
2826 uBufferLength: ULONG,
2827 uBytesRead: ULONG,
2828 ucBufferOut: [UCHAR; 1],
2829 }}
2830 pub type PDOT11_MANUFACTURING_TEST_QUERY_DATA = *mut DOT11_MANUFACTURING_TEST_QUERY_DATA;
2831 STRUCT!{struct DOT11_MANUFACTURING_TEST_SLEEP {
2832 uSleepTime: ULONG,
2833 pvContext: PVOID,
2834 }}
2835 pub type PDOT11_MANUFACTURING_TEST_SLEEP = *mut DOT11_MANUFACTURING_TEST_SLEEP;
2836 ENUM!{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 }}
2843 pub type PDOT11_MANUFACTURING_CALLBACK_TYPE = *mut DOT11_MANUFACTURING_CALLBACK_TYPE;
2844 STRUCT!{struct DOT11_MANUFACTURING_CALLBACK_PARAMETERS {
2845 Header: NDIS_OBJECT_HEADER,
2846 dot11ManufacturingCallbackType: DOT11_MANUFACTURING_CALLBACK_TYPE,
2847 uStatus: ULONG,
2848 pvContext: PVOID,
2849 }}
2850 pub type PDOT11_MANUFACTURING_CALLBACK_PARAMETERS = *mut DOT11_MANUFACTURING_CALLBACK_PARAMETERS;
2851 pub const DOT11_MANUFACTURING_CALLBACK_REVISION_1: UCHAR = 1;
2852 pub const OID_DOT11_SET_FT_REASSOCIATION_PARAMETERS: u32 =
2853 NWF_DEFINE_OID!(0x168, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
2854