master
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_WLANAPI
7#define _INC_WLANAPI
8
9#include <l2cmn.h>
10#include <windot11.h>
11#include <eaptypes.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#define WLAN_MAX_NAME_LENGTH L2_PROFILE_MAX_NAME_LENGTH
18
19#define WLAN_SET_EAPHOST_DATA_ALL_USERS 0x00000001
20
21#define WLAN_NOTIFICATION_SOURCE_NONE L2_NOTIFICATION_SOURCE_NONE
22#define WLAN_NOTIFICATION_SOURCE_ALL L2_NOTIFICATION_SOURCE_ALL
23#define WLAN_NOTIFICATION_SOURCE_ACM L2_NOTIFICATION_SOURCE_WLAN_ACM
24#define WLAN_NOTIFICATION_SOURCE_MSM L2_NOTIFICATION_SOURCE_WLAN_MSM
25#define WLAN_NOTIFICATION_SOURCE_SECURITY L2_NOTIFICATION_SOURCE_WLAN_SECURITY
26#define WLAN_NOTIFICATION_SOURCE_IHV L2_NOTIFICATION_SOURCE_WLAN_IHV
27#define WLAN_NOTIFICATION_SOURCE_HNWK L2_NOTIFICATION_SOURCE_WLAN_HNWK
28#define WLAN_NOTIFICATION_SOURCE_ONEX L2_NOTIFICATION_SOURCE_ONEX
29#define WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE L2_NOTIFICATION_SOURCE_WLAN_DEVICE_SERVICE
30
31#define WLAN_REASON_CODE_SUCCESS L2_REASON_CODE_SUCCESS
32#define WLAN_REASON_CODE_UNKNOWN L2_REASON_CODE_UNKNOWN
33#define WLAN_REASON_CODE_RANGE_SIZE L2_REASON_CODE_GROUP_SIZE
34#define WLAN_REASON_CODE_BASE L2_REASON_CODE_DOT11_AC_BASE
35#define WLAN_REASON_CODE_AC_BASE L2_REASON_CODE_DOT11_AC_BASE
36#define WLAN_REASON_CODE_AC_CONNECT_BASE (WLAN_REASON_CODE_AC_BASE + WLAN_REASON_CODE_RANGE_SIZE / 2)
37#define WLAN_REASON_CODE_AC_END (WLAN_REASON_CODE_AC_BASE + WLAN_REASON_CODE_RANGE_SIZE - 1)
38#define WLAN_REASON_CODE_PROFILE_BASE L2_REASON_CODE_PROFILE_BASE
39#define WLAN_REASON_CODE_PROFILE_CONNECT_BASE (WLAN_REASON_CODE_PROFILE_BASE + WLAN_REASON_CODE_RANGE_SIZE / 2)
40#define WLAN_REASON_CODE_PROFILE_END (WLAN_REASON_CODE_PROFILE_BASE + WLAN_REASON_CODE_RANGE_SIZE - 1)
41#define WLAN_REASON_CODE_MSM_BASE L2_REASON_CODE_DOT11_MSM_BASE
42#define WLAN_REASON_CODE_MSM_CONNECT_BASE (WLAN_REASON_CODE_MSM_BASE + WLAN_REASON_CODE_RANGE_SIZE / 2)
43#define WLAN_REASON_CODE_MSM_END (WLAN_REASON_CODE_MSM_BASE + WLAN_REASON_CODE_RANGE_SIZE - 1)
44#define WLAN_REASON_CODE_MSMSEC_BASE L2_REASON_CODE_DOT11_SECURITY_BASE
45#define WLAN_REASON_CODE_MSMSEC_CONNECT_BASE (WLAN_REASON_CODE_MSMSEC_BASE + WLAN_REASON_CODE_RANGE_SIZE / 2)
46#define WLAN_REASON_CODE_MSMSEC_END (WLAN_REASON_CODE_MSMSEC_BASE + WLAN_REASON_CODE_RANGE_SIZE - 1)
47#define WLAN_REASON_CODE_RESERVED_BASE L2_REASON_CODE_RESERVED_BASE
48#define WLAN_REASON_CODE_RESERVED_END (WLAN_REASON_CODE_RESERVED_BASE + WLAN_REASON_CODE_RANGE_SIZE - 1)
49#define WLAN_REASON_CODE_NETWORK_NOT_COMPATIBLE (WLAN_REASON_CODE_AC_BASE +1)
50#define WLAN_REASON_CODE_PROFILE_NOT_COMPATIBLE (WLAN_REASON_CODE_AC_BASE +2)
51#define WLAN_REASON_CODE_NO_AUTO_CONNECTION (WLAN_REASON_CODE_AC_CONNECT_BASE +1)
52#define WLAN_REASON_CODE_NOT_VISIBLE (WLAN_REASON_CODE_AC_CONNECT_BASE +2)
53#define WLAN_REASON_CODE_GP_DENIED (WLAN_REASON_CODE_AC_CONNECT_BASE +3)
54#define WLAN_REASON_CODE_USER_DENIED (WLAN_REASON_CODE_AC_CONNECT_BASE +4)
55#define WLAN_REASON_CODE_BSS_TYPE_NOT_ALLOWED (WLAN_REASON_CODE_AC_CONNECT_BASE +5)
56#define WLAN_REASON_CODE_IN_FAILED_LIST (WLAN_REASON_CODE_AC_CONNECT_BASE +6)
57#define WLAN_REASON_CODE_IN_BLOCKED_LIST (WLAN_REASON_CODE_AC_CONNECT_BASE +7)
58#define WLAN_REASON_CODE_SSID_LIST_TOO_LONG (WLAN_REASON_CODE_AC_CONNECT_BASE +8)
59#define WLAN_REASON_CODE_CONNECT_CALL_FAIL (WLAN_REASON_CODE_AC_CONNECT_BASE +9)
60#define WLAN_REASON_CODE_SCAN_CALL_FAIL (WLAN_REASON_CODE_AC_CONNECT_BASE +10)
61#define WLAN_REASON_CODE_NETWORK_NOT_AVAILABLE (WLAN_REASON_CODE_AC_CONNECT_BASE +11)
62#define WLAN_REASON_CODE_PROFILE_CHANGED_OR_DELETED (WLAN_REASON_CODE_AC_CONNECT_BASE +12)
63#define WLAN_REASON_CODE_KEY_MISMATCH (WLAN_REASON_CODE_AC_CONNECT_BASE + 13)
64#define WLAN_REASON_CODE_USER_NOT_RESPOND (WLAN_REASON_CODE_AC_CONNECT_BASE + 14)
65#define WLAN_REASON_CODE_AP_PROFILE_NOT_ALLOWED_FOR_CLIENT (WLAN_REASON_CODE_AC_CONNECT_BASE + 15)
66#define WLAN_REASON_CODE_AP_PROFILE_NOT_ALLOWED (WLAN_REASON_CODE_AC_CONNECT_BASE + 16)
67#define WLAN_REASON_CODE_HOTSPOT2_PROFILE_DENIED (WLAN_REASON_CODE_AC_CONNECT_BASE + 17)
68#define WLAN_REASON_CODE_INVALID_PROFILE_SCHEMA (WLAN_REASON_CODE_PROFILE_BASE +1)
69#define WLAN_REASON_CODE_PROFILE_MISSING (WLAN_REASON_CODE_PROFILE_BASE +2)
70#define WLAN_REASON_CODE_INVALID_PROFILE_NAME (WLAN_REASON_CODE_PROFILE_BASE +3)
71#define WLAN_REASON_CODE_INVALID_PROFILE_TYPE (WLAN_REASON_CODE_PROFILE_BASE +4)
72#define WLAN_REASON_CODE_INVALID_PHY_TYPE (WLAN_REASON_CODE_PROFILE_BASE +5)
73#define WLAN_REASON_CODE_MSM_SECURITY_MISSING (WLAN_REASON_CODE_PROFILE_BASE +6)
74#define WLAN_REASON_CODE_IHV_SECURITY_NOT_SUPPORTED (WLAN_REASON_CODE_PROFILE_BASE +7)
75#define WLAN_REASON_CODE_IHV_OUI_MISMATCH (WLAN_REASON_CODE_PROFILE_BASE +8)
76#define WLAN_REASON_CODE_IHV_OUI_MISSING (WLAN_REASON_CODE_PROFILE_BASE +9)
77#define WLAN_REASON_CODE_IHV_SETTINGS_MISSING (WLAN_REASON_CODE_PROFILE_BASE +10)
78#define WLAN_REASON_CODE_CONFLICT_SECURITY (WLAN_REASON_CODE_PROFILE_BASE +11)
79#define WLAN_REASON_CODE_SECURITY_MISSING (WLAN_REASON_CODE_PROFILE_BASE +12)
80#define WLAN_REASON_CODE_INVALID_BSS_TYPE (WLAN_REASON_CODE_PROFILE_BASE +13)
81#define WLAN_REASON_CODE_INVALID_ADHOC_CONNECTION_MODE (WLAN_REASON_CODE_PROFILE_BASE +14)
82#define WLAN_REASON_CODE_NON_BROADCAST_SET_FOR_ADHOC (WLAN_REASON_CODE_PROFILE_BASE +15)
83#define WLAN_REASON_CODE_AUTO_SWITCH_SET_FOR_ADHOC (WLAN_REASON_CODE_PROFILE_BASE +16)
84#define WLAN_REASON_CODE_AUTO_SWITCH_SET_FOR_MANUAL_CONNECTION (WLAN_REASON_CODE_PROFILE_BASE +17)
85#define WLAN_REASON_CODE_IHV_SECURITY_ONEX_MISSING (WLAN_REASON_CODE_PROFILE_BASE +18)
86#define WLAN_REASON_CODE_PROFILE_SSID_INVALID (WLAN_REASON_CODE_PROFILE_BASE +19)
87#define WLAN_REASON_CODE_TOO_MANY_SSID (WLAN_REASON_CODE_PROFILE_BASE +20)
88#define WLAN_REASON_CODE_IHV_CONNECTIVITY_NOT_SUPPORTED (WLAN_REASON_CODE_PROFILE_BASE +21)
89#define WLAN_REASON_CODE_BAD_MAX_NUMBER_OF_CLIENTS_FOR_AP (WLAN_REASON_CODE_PROFILE_BASE +22)
90#define WLAN_REASON_CODE_INVALID_CHANNEL (WLAN_REASON_CODE_PROFILE_BASE +23)
91#define WLAN_REASON_CODE_OPERATION_MODE_NOT_SUPPORTED (WLAN_REASON_CODE_PROFILE_BASE +24)
92#define WLAN_REASON_CODE_AUTO_AP_PROFILE_NOT_ALLOWED (WLAN_REASON_CODE_PROFILE_BASE +25)
93#define WLAN_REASON_CODE_AUTO_CONNECTION_NOT_ALLOWED (WLAN_REASON_CODE_PROFILE_BASE +26)
94#define WLAN_REASON_CODE_HOTSPOT2_PROFILE_NOT_ALLOWED (WLAN_REASON_CODE_PROFILE_BASE +27)
95#define WLAN_REASON_CODE_UNSUPPORTED_SECURITY_SET_BY_OS (WLAN_REASON_CODE_MSM_BASE +1)
96#define WLAN_REASON_CODE_UNSUPPORTED_SECURITY_SET (WLAN_REASON_CODE_MSM_BASE +2)
97#define WLAN_REASON_CODE_BSS_TYPE_UNMATCH (WLAN_REASON_CODE_MSM_BASE +3)
98#define WLAN_REASON_CODE_PHY_TYPE_UNMATCH (WLAN_REASON_CODE_MSM_BASE +4)
99#define WLAN_REASON_CODE_DATARATE_UNMATCH (WLAN_REASON_CODE_MSM_BASE +5)
100#define WLAN_REASON_CODE_USER_CANCELLED (WLAN_REASON_CODE_MSM_CONNECT_BASE+1)
101#define WLAN_REASON_CODE_ASSOCIATION_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+2)
102#define WLAN_REASON_CODE_ASSOCIATION_TIMEOUT (WLAN_REASON_CODE_MSM_CONNECT_BASE+3)
103#define WLAN_REASON_CODE_PRE_SECURITY_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+4)
104#define WLAN_REASON_CODE_START_SECURITY_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+5)
105#define WLAN_REASON_CODE_SECURITY_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+6)
106#define WLAN_REASON_CODE_SECURITY_TIMEOUT (WLAN_REASON_CODE_MSM_CONNECT_BASE+7)
107#define WLAN_REASON_CODE_ROAMING_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+8)
108#define WLAN_REASON_CODE_ROAMING_SECURITY_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+9)
109#define WLAN_REASON_CODE_ADHOC_SECURITY_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+10)
110#define WLAN_REASON_CODE_DRIVER_DISCONNECTED (WLAN_REASON_CODE_MSM_CONNECT_BASE+11)
111#define WLAN_REASON_CODE_DRIVER_OPERATION_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+12)
112#define WLAN_REASON_CODE_IHV_NOT_AVAILABLE (WLAN_REASON_CODE_MSM_CONNECT_BASE+13)
113#define WLAN_REASON_CODE_IHV_NOT_RESPONDING (WLAN_REASON_CODE_MSM_CONNECT_BASE+14)
114#define WLAN_REASON_CODE_DISCONNECT_TIMEOUT (WLAN_REASON_CODE_MSM_CONNECT_BASE+15)
115#define WLAN_REASON_CODE_INTERNAL_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+16)
116#define WLAN_REASON_CODE_UI_REQUEST_TIMEOUT (WLAN_REASON_CODE_MSM_CONNECT_BASE+17)
117#define WLAN_REASON_CODE_TOO_MANY_SECURITY_ATTEMPTS (WLAN_REASON_CODE_MSM_CONNECT_BASE+18)
118#define WLAN_REASON_CODE_AP_STARTING_FAILURE (WLAN_REASON_CODE_MSM_CONNECT_BASE+19)
119#define WLAN_REASON_CODE_NO_VISIBLE_AP (WLAN_REASON_CODE_MSM_CONNECT_BASE+20)
120#define WLAN_REASON_CODE_MSMSEC_MIN WLAN_REASON_CODE_MSMSEC_BASE
121#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_KEY_INDEX (WLAN_REASON_CODE_MSMSEC_BASE+1)
122#define WLAN_REASON_CODE_MSMSEC_PROFILE_PSK_PRESENT (WLAN_REASON_CODE_MSMSEC_BASE+2)
123#define WLAN_REASON_CODE_MSMSEC_PROFILE_KEY_LENGTH (WLAN_REASON_CODE_MSMSEC_BASE+3)
124#define WLAN_REASON_CODE_MSMSEC_PROFILE_PSK_LENGTH (WLAN_REASON_CODE_MSMSEC_BASE+4)
125#define WLAN_REASON_CODE_MSMSEC_PROFILE_NO_AUTH_CIPHER_SPECIFIED (WLAN_REASON_CODE_MSMSEC_BASE+5)
126#define WLAN_REASON_CODE_MSMSEC_PROFILE_TOO_MANY_AUTH_CIPHER_SPECIFIED (WLAN_REASON_CODE_MSMSEC_BASE+6)
127#define WLAN_REASON_CODE_MSMSEC_PROFILE_DUPLICATE_AUTH_CIPHER (WLAN_REASON_CODE_MSMSEC_BASE+7)
128#define WLAN_REASON_CODE_MSMSEC_PROFILE_RAWDATA_INVALID (WLAN_REASON_CODE_MSMSEC_BASE+8)
129#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_AUTH_CIPHER (WLAN_REASON_CODE_MSMSEC_BASE+9)
130#define WLAN_REASON_CODE_MSMSEC_PROFILE_ONEX_DISABLED (WLAN_REASON_CODE_MSMSEC_BASE+10)
131#define WLAN_REASON_CODE_MSMSEC_PROFILE_ONEX_ENABLED (WLAN_REASON_CODE_MSMSEC_BASE+11)
132#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_MODE (WLAN_REASON_CODE_MSMSEC_BASE+12)
133#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_SIZE (WLAN_REASON_CODE_MSMSEC_BASE+13)
134#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_TTL (WLAN_REASON_CODE_MSMSEC_BASE+14)
135#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PREAUTH_MODE (WLAN_REASON_CODE_MSMSEC_BASE+15)
136#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PREAUTH_THROTTLE (WLAN_REASON_CODE_MSMSEC_BASE+16)
137#define WLAN_REASON_CODE_MSMSEC_PROFILE_PREAUTH_ONLY_ENABLED (WLAN_REASON_CODE_MSMSEC_BASE+17)
138#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_NETWORK (WLAN_REASON_CODE_MSMSEC_BASE+18)
139#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_NIC (WLAN_REASON_CODE_MSMSEC_BASE+19)
140#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE (WLAN_REASON_CODE_MSMSEC_BASE+20)
141#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_DISCOVERY (WLAN_REASON_CODE_MSMSEC_BASE+21)
142#define WLAN_REASON_CODE_MSMSEC_PROFILE_PASSPHRASE_CHAR (WLAN_REASON_CODE_MSMSEC_BASE+22)
143#define WLAN_REASON_CODE_MSMSEC_PROFILE_KEYMATERIAL_CHAR (WLAN_REASON_CODE_MSMSEC_BASE+23)
144#define WLAN_REASON_CODE_MSMSEC_PROFILE_WRONG_KEYTYPE (WLAN_REASON_CODE_MSMSEC_BASE+24)
145#define WLAN_REASON_CODE_MSMSEC_MIXED_CELL (WLAN_REASON_CODE_MSMSEC_BASE+25)
146#define WLAN_REASON_CODE_MSMSEC_PROFILE_AUTH_TIMERS_INVALID (WLAN_REASON_CODE_MSMSEC_BASE+26)
147#define WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_GKEY_INTV (WLAN_REASON_CODE_MSMSEC_BASE+27)
148#define WLAN_REASON_CODE_MSMSEC_TRANSITION_NETWORK (WLAN_REASON_CODE_MSMSEC_BASE+28)
149#define WLAN_REASON_CODE_MSMSEC_PROFILE_KEY_UNMAPPED_CHAR (WLAN_REASON_CODE_MSMSEC_BASE+29)
150#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_AUTH (WLAN_REASON_CODE_MSMSEC_BASE+30)
151#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_CIPHER (WLAN_REASON_CODE_MSMSEC_BASE+31)
152#define WLAN_REASON_CODE_MSMSEC_PROFILE_SAFE_MODE (WLAN_REASON_CODE_MSMSEC_BASE+32)
153#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_SAFE_MODE_NIC (WLAN_REASON_CODE_MSMSEC_BASE+33)
154#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE_SAFE_MODE_NW (WLAN_REASON_CODE_MSMSEC_BASE+34)
155#define WLAN_REASON_CODE_MSMSEC_PROFILE_UNSUPPORTED_AUTH (WLAN_REASON_CODE_MSMSEC_BASE+35)
156#define WLAN_REASON_CODE_MSMSEC_PROFILE_UNSUPPORTED_CIPHER (WLAN_REASON_CODE_MSMSEC_BASE+36)
157#define WLAN_REASON_CODE_MSMSEC_CAPABILITY_MFP_NW_NIC (WLAN_REASON_CODE_MSMSEC_BASE+37)
158#define WLAN_REASON_CODE_MSMSEC_UI_REQUEST_FAILURE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+1)
159#define WLAN_REASON_CODE_MSMSEC_AUTH_START_TIMEOUT (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+2)
160#define WLAN_REASON_CODE_MSMSEC_AUTH_SUCCESS_TIMEOUT (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+3)
161#define WLAN_REASON_CODE_MSMSEC_KEY_START_TIMEOUT (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+4)
162#define WLAN_REASON_CODE_MSMSEC_KEY_SUCCESS_TIMEOUT (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+5)
163#define WLAN_REASON_CODE_MSMSEC_M3_MISSING_KEY_DATA (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+6)
164#define WLAN_REASON_CODE_MSMSEC_M3_MISSING_IE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+7)
165#define WLAN_REASON_CODE_MSMSEC_M3_MISSING_GRP_KEY (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+8)
166#define WLAN_REASON_CODE_MSMSEC_PR_IE_MATCHING (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+9)
167#define WLAN_REASON_CODE_MSMSEC_SEC_IE_MATCHING (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+10)
168#define WLAN_REASON_CODE_MSMSEC_NO_PAIRWISE_KEY (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+11)
169#define WLAN_REASON_CODE_MSMSEC_G1_MISSING_KEY_DATA (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+12)
170#define WLAN_REASON_CODE_MSMSEC_G1_MISSING_GRP_KEY (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+13)
171#define WLAN_REASON_CODE_MSMSEC_PEER_INDICATED_INSECURE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+14)
172#define WLAN_REASON_CODE_MSMSEC_NO_AUTHENTICATOR (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+15)
173#define WLAN_REASON_CODE_MSMSEC_NIC_FAILURE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+16)
174#define WLAN_REASON_CODE_MSMSEC_CANCELLED (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+17)
175#define WLAN_REASON_CODE_MSMSEC_KEY_FORMAT (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+18)
176#define WLAN_REASON_CODE_MSMSEC_DOWNGRADE_DETECTED (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+19)
177#define WLAN_REASON_CODE_MSMSEC_PSK_MISMATCH_SUSPECTED (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+20)
178#define WLAN_REASON_CODE_MSMSEC_FORCED_FAILURE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+21)
179#define WLAN_REASON_CODE_MSMSEC_M3_TOO_MANY_RSNIE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+22)
180#define WLAN_REASON_CODE_MSMSEC_M2_MISSING_KEY_DATA (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+23)
181#define WLAN_REASON_CODE_MSMSEC_M2_MISSING_IE (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+24)
182#define WLAN_REASON_CODE_MSMSEC_AUTH_WCN_COMPLETED (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+25)
183#define WLAN_REASON_CODE_MSMSEC_M3_MISSING_MGMT_GRP_KEY (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+26)
184#define WLAN_REASON_CODE_MSMSEC_G1_MISSING_MGMT_GRP_KEY (WLAN_REASON_CODE_MSMSEC_CONNECT_BASE+27)
185#define WLAN_REASON_CODE_MSMSEC_MAX WLAN_REASON_CODE_MSMSEC_END
186
187#define WLAN_AVAILABLE_NETWORK_CONNECTED 0x00000001
188#define WLAN_AVAILABLE_NETWORK_HAS_PROFILE 0x00000002
189#define WLAN_AVAILABLE_NETWORK_CONSOLE_USER_PROFILE 0x00000004
190#define WLAN_AVAILABLE_NETWORK_INTERWORKING_SUPPORTED 0x00000008
191#define WLAN_AVAILABLE_NETWORK_HOTSPOT2_ENABLED 0x00000010
192#define WLAN_AVAILABLE_NETWORK_ANQP_SUPPORTED 0x00000020
193#define WLAN_AVAILABLE_NETWORK_HOTSPOT2_DOMAIN 0x00000040
194#define WLAN_AVAILABLE_NETWORK_HOTSPOT2_ROAMING 0x00000080
195#define WLAN_AVAILABLE_NETWORK_AUTO_CONNECT_FAILED 0x00000100
196
197#define WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES 0x00000001
198#define WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES 0x00000002
199
200#define WLAN_READ_ACCESS (STANDARD_RIGHTS_READ | FILE_READ_DATA)
201#define WLAN_EXECUTE_ACCESS (WLAN_READ_ACCESS | STANDARD_RIGHTS_EXECUTE | FILE_EXECUTE)
202#define WLAN_WRITE_ACCESS (WLAN_READ_ACCESS | WLAN_EXECUTE_ACCESS | STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | DELETE | WRITE_DAC)
203
204typedef DWORD WLAN_REASON_CODE, *PWLAN_REASON_CODE;
205typedef ULONG WLAN_SIGNAL_QUALITY, *PWLAN_SIGNAL_QUALITY;
206
207typedef struct _DOT11_NETWORK {
208 DOT11_SSID dot11Ssid;
209 DOT11_BSS_TYPE dot11BssType;
210} DOT11_NETWORK, *PDOT11_NETWORK;
211
212typedef enum _DOT11_RADIO_STATE {
213 dot11_radio_state_unknown,
214 dot11_radio_state_on,
215 dot11_radio_state_off
216} DOT11_RADIO_STATE, *PDOT11_RADIO_STATE;
217
218typedef enum _WLAN_NOTIFICATION_ACM {
219 wlan_notification_acm_start = L2_NOTIFICATION_CODE_PUBLIC_BEGIN,
220 wlan_notification_acm_autoconf_enabled,
221 wlan_notification_acm_autoconf_disabled,
222 wlan_notification_acm_background_scan_enabled,
223 wlan_notification_acm_background_scan_disabled,
224 wlan_notification_acm_bss_type_change,
225 wlan_notification_acm_power_setting_change,
226 wlan_notification_acm_scan_complete,
227 wlan_notification_acm_scan_fail,
228 wlan_notification_acm_connection_start,
229 wlan_notification_acm_connection_complete,
230 wlan_notification_acm_connection_attempt_fail,
231 wlan_notification_acm_filter_list_change,
232 wlan_notification_acm_interface_arrival,
233 wlan_notification_acm_interface_removal,
234 wlan_notification_acm_profile_change,
235 wlan_notification_acm_profile_name_change,
236 wlan_notification_acm_profiles_exhausted,
237 wlan_notification_acm_network_not_available,
238 wlan_notification_acm_network_available,
239 wlan_notification_acm_disconnecting,
240 wlan_notification_acm_disconnected,
241 wlan_notification_acm_adhoc_network_state_change,
242 wlan_notification_acm_profile_unblocked,
243 wlan_notification_acm_screen_power_change,
244 wlan_notification_acm_profile_blocked,
245 wlan_notification_acm_scan_list_refresh,
246 wlan_notification_acm_operational_state_change,
247 wlan_notification_acm_end
248} WLAN_NOTIFICATION_ACM, *PWLAN_NOTIFICATION_ACM;
249
250typedef enum _WLAN_NOTIFICATION_MSM {
251 wlan_notification_msm_start = L2_NOTIFICATION_CODE_PUBLIC_BEGIN,
252 wlan_notification_msm_associating,
253 wlan_notification_msm_associated,
254 wlan_notification_msm_authenticating,
255 wlan_notification_msm_connected,
256 wlan_notification_msm_roaming_start,
257 wlan_notification_msm_roaming_end,
258 wlan_notification_msm_radio_state_change,
259 wlan_notification_msm_signal_quality_change,
260 wlan_notification_msm_disassociating,
261 wlan_notification_msm_disconnected,
262 wlan_notification_msm_peer_join,
263 wlan_notification_msm_peer_leave,
264 wlan_notification_msm_adapter_removal,
265 wlan_notification_msm_adapter_operation_mode_change,
266 wlan_notification_msm_link_degraded,
267 wlan_notification_msm_link_improved,
268 wlan_notification_msm_end
269} WLAN_NOTIFICATION_MSM, *PWLAN_NOTIFICATION_MSM;
270
271typedef enum _WLAN_NOTIFICATION_SECURITY {
272 wlan_notification_security_start = L2_NOTIFICATION_CODE_PUBLIC_BEGIN,
273 wlan_notification_security_end
274} WLAN_NOTIFICATION_SECURITY, *PWLAN_NOTIFICATION_SECURITY;
275
276typedef enum _WLAN_INTERFACE_STATE {
277 wlan_interface_state_not_ready = 0,
278 wlan_interface_state_connected = 1,
279 wlan_interface_state_ad_hoc_network_formed = 2,
280 wlan_interface_state_disconnecting = 3,
281 wlan_interface_state_disconnected = 4,
282 wlan_interface_state_associating = 5,
283 wlan_interface_state_discovering = 6,
284 wlan_interface_state_authenticating = 7
285} WLAN_INTERFACE_STATE, *PWLAN_INTERFACE_STATE;
286
287typedef enum _WLAN_CONNECTION_MODE {
288 wlan_connection_mode_profile,
289 wlan_connection_mode_temporary_profile,
290 wlan_connection_mode_discovery_secure,
291 wlan_connection_mode_discovery_unsecure,
292 wlan_connection_mode_auto,
293 wlan_connection_mode_invalid
294} WLAN_CONNECTION_MODE, *PWLAN_CONNECTION_MODE;
295
296typedef enum _WLAN_INTERFACE_TYPE {
297 wlan_interface_type_emulated_802_11 = 0,
298 wlan_interface_type_native_802_11,
299 wlan_interface_type_invalid
300} WLAN_INTERFACE_TYPE, *PWLAN_INTERFACE_TYPE;
301
302typedef enum _WLAN_INTF_OPCODE {
303 wlan_intf_opcode_autoconf_start = 0x000000000,
304 wlan_intf_opcode_autoconf_enabled,
305 wlan_intf_opcode_background_scan_enabled,
306 wlan_intf_opcode_media_streaming_mode,
307 wlan_intf_opcode_radio_state,
308 wlan_intf_opcode_bss_type,
309 wlan_intf_opcode_interface_state,
310 wlan_intf_opcode_current_connection,
311 wlan_intf_opcode_channel_number,
312 wlan_intf_opcode_supported_infrastructure_auth_cipher_pairs,
313 wlan_intf_opcode_supported_adhoc_auth_cipher_pairs,
314 wlan_intf_opcode_supported_country_or_region_string_list,
315 wlan_intf_opcode_current_operation_mode,
316 wlan_intf_opcode_supported_safe_mode,
317 wlan_intf_opcode_certified_safe_mode,
318 wlan_intf_opcode_hosted_network_capable,
319 wlan_intf_opcode_management_frame_protection_capable,
320 wlan_intf_opcode_secondary_sta_interfaces,
321 wlan_intf_opcode_secondary_sta_synchronized_connections,
322 wlan_intf_opcode_autoconf_end = 0x0fffffff,
323 wlan_intf_opcode_msm_start = 0x10000100,
324 wlan_intf_opcode_statistics,
325 wlan_intf_opcode_rssi,
326 wlan_intf_opcode_msm_end = 0x1fffffff,
327 wlan_intf_opcode_security_start = 0x20010000,
328 wlan_intf_opcode_security_end = 0x2fffffff,
329 wlan_intf_opcode_ihv_start = 0x30000000,
330 wlan_intf_opcode_ihv_end = 0x3fffffff
331} WLAN_INTF_OPCODE, *PWLAN_INTF_OPCODE;
332
333typedef enum _WLAN_OPCODE_VALUE_TYPE {
334 wlan_opcode_value_type_query_only = 0,
335 wlan_opcode_value_type_set_by_group_policy = 1,
336 wlan_opcode_value_type_set_by_user = 2,
337 wlan_opcode_value_type_invalid = 3
338} WLAN_OPCODE_VALUE_TYPE, *PWLAN_OPCODE_VALUE_TYPE;
339
340typedef enum _WLAN_POWER_SETTING {
341 wlan_power_setting_no_saving,
342 wlan_power_setting_low_saving,
343 wlan_power_setting_medium_saving,
344 wlan_power_setting_maximum_saving,
345 wlan_power_setting_invalid
346} WLAN_POWER_SETTING, *PWLAN_POWER_SETTING;
347
348typedef struct _WLAN_ASSOCIATION_ATTRIBUTES {
349 DOT11_SSID dot11Ssid;
350 DOT11_BSS_TYPE dot11BssType;
351 DOT11_MAC_ADDRESS dot11Bssid;
352 DOT11_PHY_TYPE dot11PhyType;
353 ULONG uDot11PhyIndex;
354 WLAN_SIGNAL_QUALITY wlanSignalQuality;
355 ULONG ulRxRate;
356 ULONG ulTxRate;
357} WLAN_ASSOCIATION_ATTRIBUTES, *PWLAN_ASSOCIATION_ATTRIBUTES;
358
359typedef struct _WLAN_AUTH_CIPHER_PAIR_LIST {
360 DWORD dwNumberOfItems;
361 DOT11_AUTH_CIPHER_PAIR pAuthCipherPairList[1];
362} WLAN_AUTH_CIPHER_PAIR_LIST, *PWLAN_AUTH_CIPHER_PAIR_LIST;
363
364typedef struct _WLAN_NOTIFICATION_DATA {
365 DWORD NotificationSource;
366 DWORD NotificationCode;
367 GUID InterfaceGuid;
368 DWORD dwDataSize;
369 PVOID pData;
370} WLAN_NOTIFICATION_DATA, *PWLAN_NOTIFICATION_DATA;
371
372#define WLAN_MAX_PHY_TYPE_NUMBER 8
373
374typedef struct _WLAN_AVAILABLE_NETWORK {
375 WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
376 DOT11_SSID dot11Ssid;
377 DOT11_BSS_TYPE dot11BssType;
378 ULONG uNumberOfBssids;
379 WINBOOL bNetworkConnectable;
380 WLAN_REASON_CODE wlanNotConnectableReason;
381 ULONG uNumberOfPhyTypes;
382 DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER];
383 WINBOOL bMorePhyTypes;
384 WLAN_SIGNAL_QUALITY wlanSignalQuality;
385 WINBOOL bSecurityEnabled;
386 DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm;
387 DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;
388 DWORD dwFlags;
389 DWORD dwReserved;
390} WLAN_AVAILABLE_NETWORK, *PWLAN_AVAILABLE_NETWORK;
391
392typedef struct _WLAN_AVAILABLE_NETWORK_V2 {
393 WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
394 DOT11_SSID dot11Ssid;
395 DOT11_BSS_TYPE dot11BssType;
396 ULONG uNumberOfBssids;
397 WINBOOL bNetworkConnectable;
398 WLAN_REASON_CODE wlanNotConnectableReason;
399 ULONG uNumberOfPhyTypes;
400 DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER];
401 WINBOOL bMorePhyTypes;
402 WLAN_SIGNAL_QUALITY wlanSignalQuality;
403 WINBOOL bSecurityEnabled;
404 DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm;
405 DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;
406 DWORD dwFlags;
407 DOT11_ACCESSNETWORKOPTIONS AccessNetworkOptions;
408 DOT11_HESSID dot11HESSID;
409 DOT11_VENUEINFO VenueInfo;
410 DWORD dwReserved;
411} WLAN_AVAILABLE_NETWORK_V2, *PWLAN_AVAILABLE_NETWORK_V2;
412
413typedef struct _WLAN_AVAILABLE_NETWORK_LIST {
414 DWORD dwNumberOfItems;
415 DWORD dwIndex;
416 WLAN_AVAILABLE_NETWORK Network[1];
417} WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST;
418
419typedef struct _WLAN_AVAILABLE_NETWORK_LIST_V2 {
420 DWORD dwNumberOfItems;
421 DWORD dwIndex;
422 WLAN_AVAILABLE_NETWORK_V2 Network[1];
423} WLAN_AVAILABLE_NETWORK_LIST_V2, *PWLAN_AVAILABLE_NETWORK_LIST_V2;
424
425typedef struct _WLAN_SECURITY_ATTRIBUTES {
426 WINBOOL bSecurityEnabled;
427 WINBOOL bOneXEnabled;
428 DOT11_AUTH_ALGORITHM dot11AuthAlgorithm;
429 DOT11_CIPHER_ALGORITHM dot11CipherAlgorithm;
430} WLAN_SECURITY_ATTRIBUTES, *PWLAN_SECURITY_ATTRIBUTES;
431
432typedef struct _WLAN_CONNECTION_ATTRIBUTES {
433 WLAN_INTERFACE_STATE isState;
434 WLAN_CONNECTION_MODE wlanConnectionMode;
435 WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
436 WLAN_ASSOCIATION_ATTRIBUTES wlanAssociationAttributes;
437 WLAN_SECURITY_ATTRIBUTES wlanSecurityAttributes;
438} WLAN_CONNECTION_ATTRIBUTES, *PWLAN_CONNECTION_ATTRIBUTES;
439
440/* Assuming stdcall */
441typedef VOID (CALLBACK *WLAN_NOTIFICATION_CALLBACK)(
442 PWLAN_NOTIFICATION_DATA ,
443 PVOID
444);
445
446#define WLAN_CONNECTION_NOTIFICATION_ADHOC_NETWORK_FORMED 0x00000001
447#define WLAN_CONNECTION_NOTIFICATION_CONSOLE_USER_PROFILE 0x00000004
448
449typedef struct _WLAN_CONNECTION_NOTIFICATION_DATA {
450 WLAN_CONNECTION_MODE wlanConnectionMode;
451 WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
452 DOT11_SSID dot11Ssid;
453 DOT11_BSS_TYPE dot11BssType;
454 WINBOOL bSecurityEnabled;
455 WLAN_REASON_CODE wlanReasonCode;
456 DWORD dwFlags;
457 WCHAR strProfileXml[1];
458} WLAN_CONNECTION_NOTIFICATION_DATA, *PWLAN_CONNECTION_NOTIFICATION_DATA;
459
460typedef struct _WLAN_DEVICE_SERVICE_NOTIFICATION_DATA {
461 GUID DeviceService;
462 DWORD dwOpCode;
463 DWORD dwDataSize;
464 BYTE DataBlob[1];
465} WLAN_DEVICE_SERVICE_NOTIFICATION_DATA, *PWLAN_DEVICE_SERVICE_NOTIFICATION_DATA;
466
467#define WLAN_CONNECTION_HIDDEN_NETWORK 0x00000001
468#define WLAN_CONNECTION_ADHOC_JOIN_ONLY 0x00000002
469#define WLAN_CONNECTION_IGNORE_PRIVACY_BIT 0x00000004
470#define WLAN_CONNECTION_EAPOL_PASSTHROUGH 0x00000008
471#define WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE 0x00000010
472#define WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_CONNECTION_MODE_AUTO 0x00000020
473#define WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_OVERWRITE_EXISTING 0x00000040
474
475typedef struct _WLAN_CONNECTION_PARAMETERS {
476 WLAN_CONNECTION_MODE wlanConnectionMode;
477 LPCWSTR strProfile;
478 PDOT11_SSID pDot11Ssid;
479 PDOT11_BSSID_LIST pDesiredBssidList;
480 DOT11_BSS_TYPE dot11BssType;
481 DWORD dwFlags;
482} WLAN_CONNECTION_PARAMETERS, *PWLAN_CONNECTION_PARAMETERS;
483
484typedef struct _WLAN_CONNECTION_PARAMETERS_V2 {
485 WLAN_CONNECTION_MODE wlanConnectionMode;
486 LPCWSTR strProfile;
487 PDOT11_SSID pDot11Ssid;
488 PDOT11_HESSID pDot11Hessid;
489 PDOT11_BSSID_LIST pDesiredBssidList;
490 DOT11_BSS_TYPE dot11BssType;
491 DWORD dwFlags;
492 PDOT11_ACCESSNETWORKOPTIONS pDot11AccessNetworkOptions;
493} WLAN_CONNECTION_PARAMETERS_V2, *PWLAN_CONNECTION_PARAMETERS_V2;
494
495typedef struct _WLAN_INTERFACE_INFO {
496 GUID InterfaceGuid;
497 WCHAR strInterfaceDescription[WLAN_MAX_NAME_LENGTH];
498 WLAN_INTERFACE_STATE isState;
499} WLAN_INTERFACE_INFO, *PWLAN_INTERFACE_INFO;
500
501typedef struct _WLAN_INTERFACE_INFO_LIST {
502 DWORD dwNumberOfItems;
503 DWORD dwIndex;
504 WLAN_INTERFACE_INFO InterfaceInfo[];
505} WLAN_INTERFACE_INFO_LIST, *PWLAN_INTERFACE_INFO_LIST;
506
507typedef struct _WLAN_PROFILE_INFO {
508 WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
509 DWORD dwFlags;
510} WLAN_PROFILE_INFO, *PWLAN_PROFILE_INFO;
511
512typedef struct _WLAN_PROFILE_INFO_LIST {
513 DWORD dwNumberOfItems;
514 DWORD dwIndex;
515 WLAN_PROFILE_INFO ProfileInfo[1];
516} WLAN_PROFILE_INFO_LIST, *PWLAN_PROFILE_INFO_LIST;
517
518#define WFD_API_VERSION_1_0 0x00000001
519
520#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
521#define WFD_API_SUPPORTED
522#define WFD_API_VERSION WFD_API_VERSION_1_0
523#endif
524
525#ifdef WFD_API_SUPPORTED
526 typedef enum _WFD_ROLE_TYPE {
527 WFD_ROLE_TYPE_NONE = 0x00,
528 WFD_ROLE_TYPE_DEVICE = 0x01,
529 WFD_ROLE_TYPE_GROUP_OWNER = 0x02,
530 WFD_ROLE_TYPE_CLIENT = 0x04,
531 WFD_ROLE_TYPE_MAX = 0x05
532 } WFD_ROLE_TYPE, *PWFD_ROLE_TYPE;
533#endif
534
535 typedef struct _WFD_GROUP_ID {
536 DOT11_MAC_ADDRESS DeviceAddress;
537 DOT11_SSID GroupSSID;
538 } WFD_GROUP_ID, *PWFD_GROUP_ID;
539
540PVOID WINAPI WlanAllocateMemory(
541 DWORD dwMemorySize
542);
543
544DWORD WINAPI WlanCloseHandle(
545 HANDLE hClientHandle,
546 PVOID pReserved
547);
548
549DWORD WINAPI WlanConnect(
550 HANDLE hClientHandle,
551 const GUID *pInterfaceGuid,
552 const PWLAN_CONNECTION_PARAMETERS pConnectionParameters,
553 PVOID pReserved
554);
555
556DWORD WINAPI WlanConnect2(
557 HANDLE hClientHandle,
558 const GUID *pInterfaceGuid,
559 const PWLAN_CONNECTION_PARAMETERS_V2 pConnectionParameters,
560 PVOID pReserved
561);
562
563DWORD WINAPI WlanDeleteProfile(
564 HANDLE hClientHandle,
565 const GUID *pInterfaceGuid,
566 LPCWSTR strProfileName,
567 PVOID pReserved
568);
569
570DWORD WINAPI WlanDeviceServiceCommand(
571 HANDLE hClientHandle,
572 const GUID *pInterfaceGuid,
573 LPGUID pDeviceServiceGuid,
574 DWORD dwOpCode,
575 DWORD dwInBufferSize,
576 PVOID pInBuffer,
577 DWORD dwOutBufferSize,
578 PVOID pOutBuffer,
579 PDWORD pdwBytesReturned
580);
581
582DWORD WINAPI WlanDisconnect(
583 HANDLE hClientHandle,
584 const GUID *pInterfaceGuid,
585 PVOID pReserved
586);
587
588DWORD WINAPI WlanEnumInterfaces(
589 HANDLE hClientHandle,
590 PVOID pReserved,
591 PWLAN_INTERFACE_INFO_LIST *ppInterfaceList
592);
593
594VOID WINAPI WlanFreeMemory(
595 PVOID pMemory
596);
597
598DWORD WINAPI WlanGetAvailableNetworkList(
599 HANDLE hClientHandle,
600 const GUID *pInterfaceGuid,
601 DWORD dwFlags,
602 PVOID pReserved,
603 PWLAN_AVAILABLE_NETWORK_LIST *ppAvailableNetworkList
604);
605
606DWORD WINAPI WlanGetAvailableNetworkList2(
607 HANDLE hClientHandle,
608 const GUID *pInterfaceGuid,
609 DWORD dwFlags,
610 PVOID pReserved,
611 PWLAN_AVAILABLE_NETWORK_LIST_V2 *ppAvailableNetworkList
612);
613
614DWORD WINAPI WlanGetProfile(
615 HANDLE hClientHandle,
616 const GUID *pInterfaceGuid,
617 LPCWSTR strProfileName,
618 PVOID pReserved,
619 LPWSTR *pstrProfileXml,
620 DWORD *pdwFlags,
621 PDWORD pdwGrantedAccess
622);
623
624DWORD WINAPI WlanGetProfileList(
625 HANDLE hClientHandle,
626 const GUID *pInterfaceGuid,
627 PVOID pReserved,
628 PWLAN_PROFILE_INFO_LIST *ppProfileList
629);
630
631DWORD WINAPI WlanOpenHandle(
632 DWORD dwClientVersion,
633 PVOID pReserved,
634 PDWORD pdwNegotiatedVersion,
635 PHANDLE phClientHandle
636);
637
638DWORD WINAPI WlanQueryInterface(
639 HANDLE hClientHandle,
640 const GUID *pInterfaceGuid,
641 WLAN_INTF_OPCODE OpCode,
642 PVOID pReserved,
643 PDWORD pdwDataSize,
644 PVOID *ppData,
645 PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
646);
647
648DWORD WINAPI WlanReasonCodeToString(
649 DWORD dwReasonCode,
650 DWORD dwBufferSize,
651 PWCHAR pStringBuffer,
652 PVOID pReserved
653);
654
655DWORD WINAPI WlanRegisterNotification(
656 HANDLE hClientHandle,
657 DWORD dwNotifSource,
658 WINBOOL bIgnoreDuplicate,
659 WLAN_NOTIFICATION_CALLBACK funcCallback,
660 PVOID pCallbackContext,
661 PVOID pReserved,
662 PDWORD pdwPrevNotifSource
663);
664
665DWORD WINAPI WlanSetInterface(
666 HANDLE hClientHandle,
667 const GUID *pInterfaceGuid,
668 WLAN_INTF_OPCODE OpCode,
669 DWORD dwDataSize,
670 const PVOID pData,
671 PVOID pReserved
672);
673
674DWORD WINAPI WlanSetProfile(
675 HANDLE hClientHandle,
676 const GUID *pInterfaceGuid,
677 DWORD dwFlags,
678 LPCWSTR strProfileXml,
679 LPCWSTR strAllUserProfileSecurity,
680 WINBOOL bOverwrite,
681 PVOID pReserved,
682 DWORD *pdwReasonCode
683);
684
685DWORD WINAPI WlanSetProfileEapXmlUserData(
686 HANDLE hClientHandle,
687 const GUID *pInterfaceGuid,
688 LPCWSTR strProfileName,
689 DWORD dwFlags,
690 LPCWSTR strEapXmlUserData,
691 PVOID pReserved
692);
693
694DWORD WINAPI WlanSetProfileList(
695 HANDLE hClientHandle,
696 const GUID *pInterfaceGuid,
697 DWORD dwItems,
698 LPCWSTR *strProfileNames,
699 PVOID pReserved
700);
701
702DWORD WINAPI WlanSetProfilePosition(
703 HANDLE hClientHandle,
704 const GUID *pInterfaceGuid,
705 LPCWSTR strProfileName,
706 DWORD dwPosition,
707 PVOID pReserved
708);
709
710typedef enum _WLAN_AUTOCONF_OPCODE {
711 wlan_autoconf_opcode_start = 0,
712 wlan_autoconf_opcode_show_denied_networks = 1,
713 wlan_autoconf_opcode_power_setting = 2,
714 wlan_autoconf_opcode_only_use_gp_profiles_for_allowed_networks = 3,
715 wlan_autoconf_opcode_allow_explicit_creds = 4,
716 wlan_autoconf_opcode_block_period = 5,
717 wlan_autoconf_opcode_allow_virtual_station_extensibility = 6,
718 wlan_autoconf_opcode_end = 7
719} WLAN_AUTOCONF_OPCODE, *PWLAN_AUTOCONF_OPCODE;
720
721typedef enum _WL_DISPLAY_PAGES {
722 WLConnectionPage,
723 WLSecurityPage
724} WL_DISPLAY_PAGES, *PWL_DISPLAY_PAGES;
725
726typedef enum _WLAN_ADHOC_NETWORK_STATE {
727 wlan_adhoc_network_state_formed = 0,
728 wlan_adhoc_network_state_connected = 1
729} WLAN_ADHOC_NETWORK_STATE, *PWLAN_ADHOC_NETWORK_STATE;
730
731typedef enum _WLAN_IHV_CONTROL_TYPE {
732 wlan_ihv_control_type_service,
733 wlan_ihv_control_type_driver
734} WLAN_IHV_CONTROL_TYPE, *PWLAN_IHV_CONTROL_TYPE;
735
736typedef enum _WLAN_FILTER_LIST_TYPE {
737 wlan_filter_list_type_gp_permit,
738 wlan_filter_list_type_gp_deny,
739 wlan_filter_list_type_user_permit,
740 wlan_filter_list_type_user_deny
741} WLAN_FILTER_LIST_TYPE, *PWLAN_FILTER_LIST_TYPE;
742
743typedef enum _WLAN_SECURABLE_OBJECT {
744 wlan_secure_permit_list = 0,
745 wlan_secure_deny_list = 1,
746 wlan_secure_ac_enabled = 2,
747 wlan_secure_bc_scan_enabled = 3,
748 wlan_secure_bss_type = 4,
749 wlan_secure_show_denied = 5,
750 wlan_secure_interface_properties = 6,
751 wlan_secure_ihv_control = 7,
752 wlan_secure_all_user_profiles_order = 8,
753 wlan_secure_add_new_all_user_profiles = 9,
754 wlan_secure_add_new_per_user_profiles = 10,
755 wlan_secure_media_streaming_mode_enabled = 11,
756 wlan_secure_current_operation_mode = 12,
757 wlan_secure_get_plaintext_key = 13,
758 wlan_secure_hosted_network_elevated_access = 14,
759 wlan_secure_virtual_station_extensibility = 15,
760 wlan_secure_wfd_elevated_access = 16,
761 WLAN_SECURABLE_OBJECT_COUNT = 17
762} WLAN_SECURABLE_OBJECT, *PWLAN_SECURABLE_OBJECT;
763
764typedef struct _WLAN_DEVICE_SERVICE_GUID_LIST {
765 DWORD dwNumberOfItems;
766 DWORD dwIndex;
767 GUID DeviceService[1];
768} WLAN_DEVICE_SERVICE_GUID_LIST, *PWLAN_DEVICE_SERVICE_GUID_LIST;
769
770typedef struct _DOT11_NETWORK_LIST {
771 DWORD dwNumberOfItems;
772 DWORD dwIndex;
773 DOT11_NETWORK Network[1];
774} DOT11_NETWORK_LIST, *PDOT11_NETWORK_LIST;
775
776#define DOT11_RATE_SET_MAX_LENGTH 126
777
778typedef struct _WLAN_RATE_SET {
779 ULONG uRateSetLength;
780 USHORT usRateSet[DOT11_RATE_SET_MAX_LENGTH];
781} WLAN_RATE_SET, *PWLAN_RATE_SET;
782
783typedef struct _WLAN_BSS_ENTRY {
784 DOT11_SSID dot11Ssid;
785 ULONG uPhyId;
786 DOT11_MAC_ADDRESS dot11Bssid;
787 DOT11_BSS_TYPE dot11BssType;
788 DOT11_PHY_TYPE dot11BssPhyType;
789 LONG lRssi;
790 ULONG uLinkQuality;
791 BOOLEAN bInRegDomain;
792 USHORT usBeaconPeriod;
793 ULONGLONG ullTimestamp;
794 ULONGLONG ullHostTimestamp;
795 USHORT usCapabilityInformation;
796 ULONG ulChCenterFrequency;
797 WLAN_RATE_SET wlanRateSet;
798 ULONG ulIeOffset;
799 ULONG ulIeSize;
800} WLAN_BSS_ENTRY, *PWLAN_BSS_ENTRY;
801
802typedef struct _WLAN_BSS_LIST {
803 DWORD dwTotalSize;
804 DWORD dwNumberOfItems;
805 WLAN_BSS_ENTRY wlanBssEntries[1];
806} WLAN_BSS_LIST, *PWLAN_BSS_LIST;
807
808typedef struct _WLAN_COUNTRY_OR_REGION_STRING_LIST {
809 DWORD dwNumberOfItems;
810 DOT11_COUNTRY_OR_REGION_STRING pCountryOrRegionStringList[1];
811} WLAN_COUNTRY_OR_REGION_STRING_LIST, *PWLAN_COUNTRY_OR_REGION_STRING_LIST;
812
813#define WLAN_MAX_PHY_INDEX 64
814
815typedef struct _WLAN_INTERFACE_CAPABILITY {
816 WLAN_INTERFACE_TYPE interfaceType;
817 WINBOOL bDot11DSupported;
818 DWORD dwMaxDesiredSsidListSize;
819 DWORD dwMaxDesiredBssidListSize;
820 DWORD dwNumberOfSupportedPhys;
821 DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_INDEX];
822} WLAN_INTERFACE_CAPABILITY, *PWLAN_INTERFACE_CAPABILITY;
823
824typedef struct _WLAN_MAC_FRAME_STATISTICS {
825 ULONGLONG ullTransmittedFrameCount;
826 ULONGLONG ullReceivedFrameCount;
827 ULONGLONG ullWEPExcludedCount;
828 ULONGLONG ullTKIPLocalMICFailures;
829 ULONGLONG ullTKIPReplays;
830 ULONGLONG ullTKIPICVErrorCount;
831 ULONGLONG ullCCMPReplays;
832 ULONGLONG ullCCMPDecryptErrors;
833 ULONGLONG ullWEPUndecryptableCount;
834 ULONGLONG ullWEPICVErrorCount;
835 ULONGLONG ullDecryptSuccessCount;
836 ULONGLONG ullDecryptFailureCount;
837} WLAN_MAC_FRAME_STATISTICS, *PWLAN_MAC_FRAME_STATISTICS;
838
839typedef struct _WLAN_MSM_NOTIFICATION_DATA {
840 WLAN_CONNECTION_MODE wlanConnectionMode;
841 WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
842 DOT11_SSID dot11Ssid;
843 DOT11_BSS_TYPE dot11BssType;
844 DOT11_MAC_ADDRESS dot11MacAddr;
845 WINBOOL bSecurityEnabled;
846 WINBOOL bFirstPeer;
847 WINBOOL bLastPeer;
848 WLAN_REASON_CODE wlanReasonCode;
849} WLAN_MSM_NOTIFICATION_DATA, *PWLAN_MSM_NOTIFICATION_DATA;
850
851typedef struct _WLAN_PHY_FRAME_STATISTICS {
852 ULONGLONG ullTransmittedFrameCount;
853 ULONGLONG ullMulticastTransmittedFrameCount;
854 ULONGLONG ullFailedCount;
855 ULONGLONG ullRetryCount;
856 ULONGLONG ullMultipleRetryCount;
857 ULONGLONG ullMaxTXLifetimeExceededCount;
858 ULONGLONG ullTransmittedFragmentCount;
859 ULONGLONG ullRTSSuccessCount;
860 ULONGLONG ullRTSFailureCount;
861 ULONGLONG ullACKFailureCount;
862 ULONGLONG ullReceivedFrameCount;
863 ULONGLONG ullMulticastReceivedFrameCount;
864 ULONGLONG ullPromiscuousReceivedFrameCount;
865 ULONGLONG ullMaxRXLifetimeExceededCount;
866 ULONGLONG ullFrameDuplicateCount;
867 ULONGLONG ullReceivedFragmentCount;
868 ULONGLONG ullPromiscuousReceivedFragmentCount;
869 ULONGLONG ullFCSErrorCount;
870} WLAN_PHY_FRAME_STATISTICS, *PWLAN_PHY_FRAME_STATISTICS;
871
872typedef struct _WLAN_PHY_RADIO_STATE {
873 DWORD dwPhyIndex;
874 DOT11_RADIO_STATE dot11SoftwareRadioState;
875 DOT11_RADIO_STATE dot11HardwareRadioState;
876} WLAN_PHY_RADIO_STATE, *PWLAN_PHY_RADIO_STATE;
877
878typedef struct _WLAN_RADIO_STATE {
879 DWORD dwNumberOfPhys;
880 WLAN_PHY_RADIO_STATE PhyRadioState[WLAN_MAX_PHY_INDEX];
881} WLAN_RADIO_STATE, *PWLAN_RADIO_STATE;
882
883typedef enum _WLAN_OPERATIONAL_STATE {
884 wlan_operational_state_unknown = 0,
885 wlan_operational_state_off,
886 wlan_operational_state_on,
887 wlan_operational_state_going_off,
888 wlan_operational_state_going_on
889} WLAN_OPERATIONAL_STATE, *PWLAN_OPERATIONAL_STATE;
890
891#define DOT11_PSD_IE_MAX_DATA_SIZE 240
892#define DOT11_PSD_IE_MAX_ENTRY_NUMBER 5
893
894typedef struct _WLAN_RAW_DATA {
895 DWORD dwDataSize;
896 BYTE DataBlob[1];
897} WLAN_RAW_DATA, *PWLAN_RAW_DATA;
898
899typedef struct _WLAN_RAW_DATA_LIST {
900 DWORD dwTotalSize;
901 DWORD dwNumberOfItems;
902 struct {
903 DWORD dwDataOffset;
904 DWORD dwDataSize;
905 } DataList[1];
906} WLAN_RAW_DATA_LIST, *PWLAN_RAW_DATA_LIST;
907
908typedef struct _WLAN_STATISTICS {
909 ULONGLONG ullFourWayHandshakeFailures;
910 ULONGLONG ullTKIPCounterMeasuresInvoked;
911 ULONGLONG ullReserved;
912 WLAN_MAC_FRAME_STATISTICS MacUcastCounters;
913 WLAN_MAC_FRAME_STATISTICS MacMcastCounters;
914 DWORD dwNumberOfPhys;
915 WLAN_PHY_FRAME_STATISTICS PhyCounters[1];
916} WLAN_STATISTICS, *PWLAN_STATISTICS;
917
918DWORD WINAPI WlanExtractPsdIEDataList(
919 HANDLE hClientHandle,
920 DWORD dwIeDataSize,
921 const PBYTE pRawIeData,
922 LPCWSTR strFormat,
923 PVOID pReserved,
924 PWLAN_RAW_DATA_LIST *ppPsdIEDataList
925);
926
927DWORD WINAPI WlanGetFilterList(
928 HANDLE hClientHandle,
929 WLAN_FILTER_LIST_TYPE wlanFilterListType,
930 PVOID pReserved,
931 PDOT11_NETWORK_LIST *ppNetworkList
932);
933
934DWORD WINAPI WlanGetInterfaceCapability(
935 HANDLE hClientHandle,
936 const GUID *pInterfaceGuid,
937 PVOID pReserved,
938 PWLAN_INTERFACE_CAPABILITY *ppCapability
939);
940
941DWORD WINAPI WlanGetNetworkBssList(
942 HANDLE hClientHandle,
943 const GUID *pInterfaceGuid,
944 const PDOT11_SSID pDot11Ssid,
945 DOT11_BSS_TYPE dot11BssType,
946 WINBOOL bSecurityEnabled,
947 PVOID pReserved,
948 PWLAN_BSS_LIST *ppWlanBssList
949);
950
951DWORD WINAPI WlanGetProfileCustomUserData(
952 HANDLE hClientHandle,
953 const GUID *pInterfaceGuid,
954 LPCWSTR strProfileName,
955 PVOID pReserved,
956 DWORD *pdwDataSize,
957 PBYTE *ppData
958);
959
960DWORD WINAPI WlanGetSecuritySettings(
961 HANDLE hClientHandle,
962 WLAN_SECURABLE_OBJECT SecurableObject,
963 PWLAN_OPCODE_VALUE_TYPE pValueType,
964 LPWSTR *pstrCurrentSDDL,
965 PDWORD pdwGrantedAccess
966);
967
968DWORD WINAPI WlanGetSupportedDeviceServices(
969 HANDLE hClientHandle,
970 const GUID *pInterfaceGuid,
971 PWLAN_DEVICE_SERVICE_GUID_LIST *ppDevSvcGuidList
972);
973
974DWORD WINAPI WlanIhvControl(
975 HANDLE hClientHandle,
976 const GUID *pInterfaceGuid,
977 WLAN_IHV_CONTROL_TYPE Type,
978 DWORD dwInBufferSize,
979 PVOID pInBuffer,
980 DWORD dwOutBufferSize,
981 PVOID pOutBuffer,
982 PDWORD pdwBytesReturned
983);
984
985DWORD WINAPI WlanQueryAutoConfigParameter(
986 HANDLE hClientHandle,
987 WLAN_AUTOCONF_OPCODE OpCode,
988 PVOID pReserved,
989 PDWORD pdwDataSize,
990 PVOID *ppData,
991 PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
992);
993
994DWORD WINAPI WlanRegisterDeviceServiceNotification(
995 HANDLE hClientHandle,
996 const PWLAN_DEVICE_SERVICE_GUID_LIST pDevSvcGuidList
997);
998
999DWORD WINAPI WlanRenameProfile(
1000 HANDLE hClientHandle,
1001 const GUID *pInterfaceGuid,
1002 LPCWSTR strOldProfileName,
1003 LPCWSTR strNewProfileName,
1004 PVOID pReserved
1005);
1006
1007#define WLAN_PROFILE_GROUP_POLICY 0x00000001
1008#define WLAN_PROFILE_USER 0x00000002
1009#define WLAN_PROFILE_GET_PLAINTEXT_KEY 0x00000004
1010#define WLAN_PROFILE_CONNECTION_MODE_SET_BY_CLIENT 0x00010000
1011#define WLAN_PROFILE_CONNECTION_MODE_AUTO 0x00020000
1012
1013DWORD WINAPI WlanSaveTemporaryProfile(
1014 HANDLE hClientHandle,
1015 const GUID *pInterfaceGuid,
1016 LPCWSTR strProfileName,
1017 LPCWSTR strAllUserProfileSecurity,
1018 DWORD dwFlags,
1019 WINBOOL bOverWrite,
1020 PVOID pReserved
1021);
1022
1023DWORD WINAPI WlanScan(
1024 HANDLE hClientHandle,
1025 const GUID *pInterfaceGuid,
1026 const PDOT11_SSID pDot11Ssid,
1027 const PWLAN_RAW_DATA pIeData,
1028 PVOID pReserved
1029);
1030
1031DWORD WINAPI WlanSetAutoConfigParameter(
1032 HANDLE hClientHandle,
1033 WLAN_AUTOCONF_OPCODE OpCode,
1034 DWORD dwDataSize,
1035 const PVOID pData,
1036 PVOID pReserved
1037);
1038
1039DWORD WINAPI WlanSetFilterList(
1040 HANDLE hClientHandle,
1041 WLAN_FILTER_LIST_TYPE wlanFilterListType,
1042 const PDOT11_NETWORK_LIST pNetworkList,
1043 PVOID pReserved
1044);
1045
1046DWORD WINAPI WlanSetProfileCustomUserData(
1047 HANDLE hClientHandle,
1048 const GUID *pInterfaceGuid,
1049 LPCWSTR strProfileName,
1050 DWORD dwDataSize,
1051 const PBYTE pData,
1052 PVOID pReserved
1053);
1054
1055DWORD WlanSetProfileEapUserData(
1056 HANDLE hClientHandle,
1057 const GUID *pInterfaceGuid,
1058 LPCWSTR strProfileName,
1059 EAP_METHOD_TYPE eapType,
1060 DWORD dwFlags,
1061 DWORD dwEapUserDataSize,
1062 const LPBYTE pbEapUserData,
1063 PVOID pReserved
1064);
1065
1066DWORD WINAPI WlanSetPsdIEDataList(
1067 HANDLE hClientHandle,
1068 LPCWSTR strFormat,
1069 const PWLAN_RAW_DATA_LIST pPsdIEDataList,
1070 PVOID pReserved
1071);
1072
1073DWORD WINAPI WlanSetSecuritySettings(
1074 HANDLE hClientHandle,
1075 WLAN_SECURABLE_OBJECT SecurableObject,
1076 LPCWSTR strModifiedSDDL
1077);
1078
1079DWORD WINAPI WlanUIEditProfile(
1080 DWORD dwClientVersion,
1081 LPCWSTR wstrProfileName,
1082 GUID *pInterfaceGuid,
1083 HWND hWnd,
1084 WL_DISPLAY_PAGES wlStartPage,
1085 PVOID pReserved,
1086 PWLAN_REASON_CODE *pWlanReasonCode
1087);
1088
1089#ifdef __cplusplus
1090}
1091#endif
1092
1093#endif /*_INC_WLANAPI*/