wlanapi.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753
  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. #include <l2cmn.h>
  9. #include <windot11.h>
  10. #include <eaptypes.h>
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. #define WLAN_NOTIFICATION_SOURCE_NONE L2_NOTIFICATION_SOURCE_NONE
  15. #define WLAN_NOTIFICATION_SOURCE_ALL L2_NOTIFICATION_SOURCE_ALL
  16. #define WLAN_NOTIFICATION_SOURCE_ACM L2_NOTIFICATION_SOURCE_WLAN_ACM
  17. #define WLAN_NOTIFICATION_SOURCE_MSM L2_NOTIFICATION_SOURCE_WLAN_MSM
  18. #define WLAN_NOTIFICATION_SOURCE_SECURITY L2_NOTIFICATION_SOURCE_WLAN_SECURITY
  19. #define WLAN_NOTIFICATION_SOURCE_IHV L2_NOTIFICATION_SOURCE_WLAN_IHV
  20. #define WLAN_NOTIFICATION_SOURCE_HNWK L2_NOTIFICATION_SOURCE_WLAN_HNWK
  21. #define WLAN_NOTIFICATION_SOURCE_ONEX L2_NOTIFICATION_SOURCE_ONEX
  22. typedef DWORD WLAN_REASON_CODE, *PWLAN_REASON_CODE;
  23. typedef ULONG WLAN_SIGNAL_QUALITY, *PWLAN_SIGNAL_QUALITY;
  24. typedef struct _DOT11_NETWORK {
  25. DOT11_SSID dot11Ssid;
  26. DOT11_BSS_TYPE dot11BssType;
  27. } DOT11_NETWORK, *PDOT11_NETWORK;
  28. typedef enum _DOT11_RADIO_STATE {
  29. dot11_radio_state_unknown,
  30. dot11_radio_state_on,
  31. dot11_radio_state_off
  32. } DOT11_RADIO_STATE, *PDOT11_RADIO_STATE;
  33. typedef enum _WLAN_NOTIFICATION_ACM {
  34. wlan_notification_acm_start = 0,
  35. wlan_notification_acm_autoconf_enabled,
  36. wlan_notification_acm_autoconf_disabled,
  37. wlan_notification_acm_background_scan_enabled,
  38. wlan_notification_acm_background_scan_disabled,
  39. wlan_notification_acm_bss_type_change,
  40. wlan_notification_acm_power_setting_change,
  41. wlan_notification_acm_scan_complete,
  42. wlan_notification_acm_scan_fail,
  43. wlan_notification_acm_connection_start,
  44. wlan_notification_acm_connection_complete,
  45. wlan_notification_acm_connection_attempt_fail,
  46. wlan_notification_acm_filter_list_change,
  47. wlan_notification_acm_interface_arrival,
  48. wlan_notification_acm_interface_removal,
  49. wlan_notification_acm_profile_change,
  50. wlan_notification_acm_profile_name_change,
  51. wlan_notification_acm_profiles_exhausted,
  52. wlan_notification_acm_network_not_available,
  53. wlan_notification_acm_network_available,
  54. wlan_notification_acm_disconnecting,
  55. wlan_notification_acm_disconnected,
  56. wlan_notification_acm_adhoc_network_state_change,
  57. wlan_notification_acm_end
  58. } WLAN_NOTIFICATION_ACM, *PWLAN_NOTIFICATION_ACM;
  59. typedef enum _WLAN_INTERFACE_STATE {
  60. wlan_interface_state_not_ready = 0,
  61. wlan_interface_state_connected = 1,
  62. wlan_interface_state_ad_hoc_network_formed = 2,
  63. wlan_interface_state_disconnecting = 3,
  64. wlan_interface_state_disconnected = 4,
  65. wlan_interface_state_associating = 5,
  66. wlan_interface_state_discovering = 6,
  67. wlan_interface_state_authenticating = 7
  68. } WLAN_INTERFACE_STATE, *PWLAN_INTERFACE_STATE;
  69. typedef enum _WLAN_CONNECTION_MODE {
  70. wlan_connection_mode_profile,
  71. wlan_connection_mode_temporary_profile,
  72. wlan_connection_mode_discovery_secure,
  73. wlan_connection_mode_discovery_unsecure,
  74. wlan_connection_mode_auto,
  75. wlan_connection_mode_invalid
  76. } WLAN_CONNECTION_MODE, *PWLAN_CONNECTION_MODE;
  77. typedef enum _WLAN_INTERFACE_TYPE {
  78. wlan_interface_type_emulated_802_11 = 0,
  79. wlan_interface_type_native_802_11,
  80. wlan_interface_type_invalid
  81. } WLAN_INTERFACE_TYPE, *PWLAN_INTERFACE_TYPE;
  82. typedef enum _WLAN_INTF_OPCODE {
  83. wlan_intf_opcode_autoconf_start = 0x000000000,
  84. wlan_intf_opcode_autoconf_enabled,
  85. wlan_intf_opcode_background_scan_enabled,
  86. wlan_intf_opcode_media_streaming_mode,
  87. wlan_intf_opcode_radio_state,
  88. wlan_intf_opcode_bss_type,
  89. wlan_intf_opcode_interface_state,
  90. wlan_intf_opcode_current_connection,
  91. wlan_intf_opcode_channel_number,
  92. wlan_intf_opcode_supported_infrastructure_auth_cipher_pairs,
  93. wlan_intf_opcode_supported_adhoc_auth_cipher_pairs,
  94. wlan_intf_opcode_supported_country_or_region_string_list,
  95. wlan_intf_opcode_current_operation_mode,
  96. wlan_intf_opcode_supported_safe_mode,
  97. wlan_intf_opcode_certified_safe_mode,
  98. wlan_intf_opcode_hosted_network_capable,
  99. wlan_intf_opcode_autoconf_end = 0x0fffffff,
  100. wlan_intf_opcode_msm_start = 0x10000100,
  101. wlan_intf_opcode_statistics,
  102. wlan_intf_opcode_rssi,
  103. wlan_intf_opcode_msm_end = 0x1fffffff,
  104. wlan_intf_opcode_security_start = 0x20010000,
  105. wlan_intf_opcode_security_end = 0x2fffffff,
  106. wlan_intf_opcode_ihv_start = 0x30000000,
  107. wlan_intf_opcode_ihv_end = 0x3fffffff
  108. } WLAN_INTF_OPCODE, *PWLAN_INTF_OPCODE;
  109. typedef enum _WLAN_OPCODE_VALUE_TYPE {
  110. wlan_opcode_value_type_query_only = 0,
  111. wlan_opcode_value_type_set_by_group_policy = 1,
  112. wlan_opcode_value_type_set_by_user = 2,
  113. wlan_opcode_value_type_invalid = 3
  114. } WLAN_OPCODE_VALUE_TYPE, *PWLAN_OPCODE_VALUE_TYPE;
  115. typedef enum _WLAN_POWER_SETTING {
  116. wlan_power_setting_no_saving,
  117. wlan_power_setting_low_saving,
  118. wlan_power_setting_medium_saving,
  119. wlan_power_setting_maximum_saving,
  120. wlan_power_setting_invalid
  121. } WLAN_POWER_SETTING, *PWLAN_POWER_SETTING;
  122. typedef struct _WLAN_ASSOCIATION_ATTRIBUTES {
  123. DOT11_SSID dot11Ssid;
  124. DOT11_BSS_TYPE dot11BssType;
  125. DOT11_MAC_ADDRESS dot11Bssid;
  126. DOT11_PHY_TYPE dot11PhyType;
  127. ULONG uDot11PhyIndex;
  128. WLAN_SIGNAL_QUALITY wlanSignalQuality;
  129. ULONG ulRxRate;
  130. ULONG ulTxRate;
  131. } WLAN_ASSOCIATION_ATTRIBUTES, *PWLAN_ASSOCIATION_ATTRIBUTES;
  132. typedef struct _WLAN_AUTH_CIPHER_PAIR_LIST {
  133. DWORD dwNumberOfItems;
  134. DOT11_AUTH_CIPHER_PAIR pAuthCipherPairList;
  135. } WLAN_AUTH_CIPHER_PAIR_LIST, *PWLAN_AUTH_CIPHER_PAIR_LIST;
  136. typedef struct _WLAN_NOTIFICATION_DATA {
  137. DWORD NotificationSource;
  138. DWORD NotificationCode;
  139. GUID InterfaceGuid;
  140. DWORD dwDataSize;
  141. PVOID pData;
  142. } WLAN_NOTIFICATION_DATA, *PWLAN_NOTIFICATION_DATA;
  143. #define WLAN_MAX_PHY_TYPE_NUMBER 8
  144. typedef struct _WLAN_AVAILABLE_NETWORK {
  145. WCHAR strProfileName[256];
  146. DOT11_SSID dot11Ssid;
  147. DOT11_BSS_TYPE dot11BssType;
  148. ULONG uNumberOfBssids;
  149. WINBOOL bNetworkConnectable;
  150. WLAN_REASON_CODE wlanNotConnectableReason;
  151. ULONG uNumberOfPhyTypes;
  152. DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER];
  153. WINBOOL bMorePhyTypes;
  154. WLAN_SIGNAL_QUALITY wlanSignalQuality;
  155. WINBOOL bSecurityEnabled;
  156. DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm;
  157. DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;
  158. DWORD dwFlags;
  159. DWORD dwReserved;
  160. } WLAN_AVAILABLE_NETWORK, *PWLAN_AVAILABLE_NETWORK;
  161. typedef struct _WLAN_AVAILABLE_NETWORK_LIST {
  162. DWORD dwNumberOfItems;
  163. DWORD dwIndex;
  164. WLAN_AVAILABLE_NETWORK Network[1];
  165. } WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST;
  166. typedef struct _WLAN_SECURITY_ATTRIBUTES {
  167. WINBOOL bSecurityEnabled;
  168. WINBOOL bOneXEnabled;
  169. DOT11_AUTH_ALGORITHM dot11AuthAlgorithm;
  170. DOT11_CIPHER_ALGORITHM dot11CipherAlgorithm;
  171. } WLAN_SECURITY_ATTRIBUTES, *PWLAN_SECURITY_ATTRIBUTES;
  172. typedef struct _WLAN_CONNECTION_ATTRIBUTES {
  173. WLAN_INTERFACE_STATE isState;
  174. WLAN_CONNECTION_MODE wlanConnectionMode;
  175. WCHAR strProfileName[256];
  176. WLAN_ASSOCIATION_ATTRIBUTES wlanAssociationAttributes;
  177. WLAN_SECURITY_ATTRIBUTES wlanSecurityAttributes;
  178. } WLAN_CONNECTION_ATTRIBUTES, *PWLAN_CONNECTION_ATTRIBUTES;
  179. /* Assuming stdcall */
  180. typedef VOID (CALLBACK *WLAN_NOTIFICATION_CALLBACK)(
  181. PWLAN_NOTIFICATION_DATA ,
  182. PVOID
  183. );
  184. #define WLAN_MAX_NAME_LENGTH 256
  185. typedef struct _WLAN_CONNECTION_NOTIFICATION_DATA {
  186. WLAN_CONNECTION_MODE wlanConnectionMode;
  187. WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
  188. DOT11_SSID dot11Ssid;
  189. DOT11_BSS_TYPE dot11BssType;
  190. BOOL bSecurityEnabled;
  191. WLAN_REASON_CODE wlanReasonCode;
  192. DWORD dwFlags;
  193. WCHAR strProfileXml[1];
  194. } WLAN_CONNECTION_NOTIFICATION_DATA, *PWLAN_CONNECTION_NOTIFICATION_DATA;
  195. #define WLAN_CONNECTION_HIDDEN_NETWORK 0x00000001
  196. #define WLAN_CONNECTION_ADHOC_JOIN_ONLY 0x00000002
  197. #define WLAN_CONNECTION_IGNORE_PRIVACY_BIT 0x00000004
  198. #define WLAN_CONNECTION_EAPOL_PASSTHROUGH 0x00000008
  199. typedef struct _WLAN_CONNECTION_PARAMETERS {
  200. WLAN_CONNECTION_MODE wlanConnectionMode;
  201. LPCWSTR strProfile;
  202. PDOT11_SSID pDot11Ssid;
  203. PDOT11_BSSID_LIST pDesiredBssidList;
  204. DOT11_BSS_TYPE dot11BssType;
  205. DWORD dwFlags;
  206. } WLAN_CONNECTION_PARAMETERS, *PWLAN_CONNECTION_PARAMETERS;
  207. typedef struct _WLAN_INTERFACE_INFO {
  208. GUID InterfaceGuid;
  209. WCHAR strInterfaceDescription[256];
  210. WLAN_INTERFACE_STATE isState;
  211. } WLAN_INTERFACE_INFO, *PWLAN_INTERFACE_INFO;
  212. typedef struct _WLAN_INTERFACE_INFO_LIST {
  213. DWORD dwNumberOfItems;
  214. DWORD dwIndex;
  215. WLAN_INTERFACE_INFO InterfaceInfo[];
  216. } WLAN_INTERFACE_INFO_LIST, *PWLAN_INTERFACE_INFO_LIST;
  217. typedef struct _WLAN_PROFILE_INFO {
  218. WCHAR strProfileName[256];
  219. DWORD dwFlags;
  220. } WLAN_PROFILE_INFO, *PWLAN_PROFILE_INFO;
  221. typedef struct _WLAN_PROFILE_INFO_LIST {
  222. DWORD dwNumberOfItems;
  223. DWORD dwIndex;
  224. WLAN_PROFILE_INFO ProfileInfo[1];
  225. } WLAN_PROFILE_INFO_LIST, *PWLAN_PROFILE_INFO_LIST;
  226. PVOID WINAPI WlanAllocateMemory(
  227. DWORD dwMemorySize
  228. );
  229. DWORD WINAPI WlanCloseHandle(
  230. HANDLE hClientHandle,
  231. PVOID pReserved
  232. );
  233. DWORD WINAPI WlanConnect(
  234. HANDLE hClientHandle,
  235. const GUID *pInterfaceGuid,
  236. const PWLAN_CONNECTION_PARAMETERS pConnectionParameters,
  237. PVOID pReserved
  238. );
  239. DWORD WINAPI WlanDeleteProfile(
  240. HANDLE hClientHandle,
  241. const GUID *pInterfaceGuid,
  242. LPCWSTR strProfileName,
  243. PVOID pReserved
  244. );
  245. DWORD WINAPI WlanDisconnect(
  246. HANDLE hClientHandle,
  247. const GUID *pInterfaceGuid,
  248. PVOID pReserved
  249. );
  250. DWORD WINAPI WlanEnumInterfaces(
  251. HANDLE hClientHandle,
  252. PVOID pReserved,
  253. PWLAN_INTERFACE_INFO_LIST *ppInterfaceList
  254. );
  255. VOID WINAPI WlanFreeMemory(
  256. PVOID pMemory
  257. );
  258. DWORD WINAPI WlanGetAvailableNetworkList(
  259. HANDLE hClientHandle,
  260. const GUID *pInterfaceGuid,
  261. DWORD dwFlags,
  262. PVOID pReserved,
  263. PWLAN_AVAILABLE_NETWORK_LIST *ppAvailableNetworkList
  264. );
  265. DWORD WINAPI WlanGetProfile(
  266. HANDLE hClientHandle,
  267. const GUID *pInterfaceGuid,
  268. LPCWSTR strProfileName,
  269. PVOID pReserved,
  270. LPWSTR *pstrProfileXml,
  271. DWORD *pdwFlags,
  272. PDWORD pdwGrantedAccess
  273. );
  274. DWORD WINAPI WlanGetProfileList(
  275. HANDLE hClientHandle,
  276. const GUID *pInterfaceGuid,
  277. PVOID pReserved,
  278. PWLAN_PROFILE_INFO_LIST *ppProfileList
  279. );
  280. DWORD WINAPI WlanOpenHandle(
  281. DWORD dwClientVersion,
  282. PVOID pReserved,
  283. PDWORD pdwNegotiatedVersion,
  284. PHANDLE phClientHandle
  285. );
  286. DWORD WINAPI WlanQueryInterface(
  287. HANDLE hClientHandle,
  288. const GUID *pInterfaceGuid,
  289. WLAN_INTF_OPCODE OpCode,
  290. PVOID pReserved,
  291. PDWORD pdwDataSize,
  292. PVOID *ppData,
  293. PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
  294. );
  295. DWORD WINAPI WlanReasonCodeToString(
  296. DWORD dwReasonCode,
  297. DWORD dwBufferSize,
  298. PWCHAR pStringBuffer,
  299. PVOID pReserved
  300. );
  301. DWORD WINAPI WlanRegisterNotification(
  302. HANDLE hClientHandle,
  303. DWORD dwNotifSource,
  304. WINBOOL bIgnoreDuplicate,
  305. WLAN_NOTIFICATION_CALLBACK funcCallback,
  306. PVOID pCallbackContext,
  307. PVOID pReserved,
  308. PDWORD pdwPrevNotifSource
  309. );
  310. DWORD WINAPI WlanSetInterface(
  311. HANDLE hClientHandle,
  312. const GUID *pInterfaceGuid,
  313. WLAN_INTF_OPCODE OpCode,
  314. DWORD dwDataSize,
  315. const PVOID pData,
  316. PVOID pReserved
  317. );
  318. DWORD WINAPI WlanSetProfile(
  319. HANDLE hClientHandle,
  320. const GUID *pInterfaceGuid,
  321. DWORD dwFlags,
  322. LPCWSTR strProfileXml,
  323. LPCWSTR strAllUserProfileSecurity,
  324. WINBOOL bOverwrite,
  325. PVOID pReserved,
  326. DWORD *pdwReasonCode
  327. );
  328. DWORD WINAPI WlanSetProfileEapXmlUserData(
  329. HANDLE hClientHandle,
  330. const GUID *pInterfaceGuid,
  331. LPCWSTR strProfileName,
  332. DWORD dwFlags,
  333. LPCWSTR strEapXmlUserData,
  334. PVOID pReserved
  335. );
  336. DWORD WINAPI WlanSetProfileList(
  337. HANDLE hClientHandle,
  338. const GUID *pInterfaceGuid,
  339. DWORD dwItems,
  340. LPCWSTR *strProfileNames,
  341. PVOID pReserved
  342. );
  343. DWORD WINAPI WlanSetProfilePosition(
  344. HANDLE hClientHandle,
  345. const GUID *pInterfaceGuid,
  346. LPCWSTR strProfileName,
  347. DWORD dwPosition,
  348. PVOID pReserved
  349. );
  350. typedef enum _WLAN_AUTOCONF_OPCODE {
  351. wlan_autoconf_opcode_start = 0,
  352. wlan_autoconf_opcode_show_denied_networks = 1,
  353. wlan_autoconf_opcode_power_setting = 2,
  354. wlan_autoconf_opcode_only_use_gp_profiles_for_allowed_networks = 3,
  355. wlan_autoconf_opcode_allow_explicit_creds = 4,
  356. wlan_autoconf_opcode_block_period = 5,
  357. wlan_autoconf_opcode_allow_virtual_station_extensibility = 6,
  358. wlan_autoconf_opcode_end = 7
  359. } WLAN_AUTOCONF_OPCODE, *PWLAN_AUTOCONF_OPCODE;
  360. typedef enum _WL_DISPLAY_PAGES {
  361. WLConnectionPage,
  362. WLSecurityPage
  363. } WL_DISPLAY_PAGES, *PWL_DISPLAY_PAGES;
  364. typedef enum _WLAN_ADHOC_NETWORK_STATE {
  365. wlan_adhoc_network_state_formed = 0,
  366. wlan_adhoc_network_state_connected = 1
  367. } WLAN_ADHOC_NETWORK_STATE;
  368. typedef enum _WLAN_IHV_CONTROL_TYPE {
  369. wlan_ihv_control_type_service,
  370. wlan_ihv_control_type_driver
  371. } WLAN_IHV_CONTROL_TYPE, *PWLAN_IHV_CONTROL_TYPE;
  372. typedef enum _WLAN_FILTER_LIST_TYPE {
  373. wlan_filter_list_type_gp_permit,
  374. wlan_filter_list_type_gp_deny,
  375. wlan_filter_list_type_user_permit,
  376. wlan_filter_list_type_user_deny
  377. } WLAN_FILTER_LIST_TYPE, *PWLAN_FILTER_LIST_TYPE;
  378. typedef enum _WLAN_SECURABLE_OBJECT {
  379. wlan_secure_permit_list = 0,
  380. wlan_secure_deny_list = 1,
  381. wlan_secure_ac_enabled = 2,
  382. wlan_secure_bc_scan_enabled = 3,
  383. wlan_secure_bss_type = 4,
  384. wlan_secure_show_denied = 5,
  385. wlan_secure_interface_properties = 6,
  386. wlan_secure_ihv_control = 7,
  387. wlan_secure_all_user_profiles_order = 8,
  388. wlan_secure_add_new_all_user_profiles = 9,
  389. wlan_secure_add_new_per_user_profiles = 10,
  390. wlan_secure_media_streaming_mode_enabled = 11,
  391. wlan_secure_current_operation_mode = 12,
  392. wlan_secure_get_plaintext_key = 13,
  393. wlan_secure_hosted_network_elevated_access = 14
  394. } WLAN_SECURABLE_OBJECT, *PWLAN_SECURABLE_OBJECT;
  395. typedef struct _DOT11_NETWORK_LIST {
  396. DWORD dwNumberOfItems;
  397. DWORD dwIndex;
  398. DOT11_NETWORK Network[1];
  399. } DOT11_NETWORK_LIST, *PDOT11_NETWORK_LIST;
  400. #define DOT11_RATE_SET_MAX_LENGTH 126
  401. typedef struct _WLAN_RATE_SET {
  402. ULONG uRateSetLength;
  403. USHORT usRateSet[DOT11_RATE_SET_MAX_LENGTH];
  404. } WLAN_RATE_SET, *PWLAN_RATE_SET;
  405. typedef struct _WLAN_BSS_ENTRY {
  406. DOT11_SSID dot11Ssid;
  407. ULONG uPhyId;
  408. DOT11_MAC_ADDRESS dot11Bssid;
  409. DOT11_BSS_TYPE dot11BssType;
  410. DOT11_PHY_TYPE dot11BssPhyType;
  411. LONG lRssi;
  412. ULONG uLinkQuality;
  413. BOOLEAN bInRegDomain;
  414. USHORT usBeaconPeriod;
  415. ULONGLONG ullTimestamp;
  416. ULONGLONG ullHostTimestamp;
  417. USHORT usCapabilityInformation;
  418. ULONG ulChCenterFrequency;
  419. WLAN_RATE_SET wlanRateSet;
  420. ULONG ulIeOffset;
  421. ULONG ulIeSize;
  422. } WLAN_BSS_ENTRY, *PWLAN_BSS_ENTRY;
  423. typedef struct _WLAN_BSS_LIST {
  424. DWORD dwTotalSize;
  425. DWORD dwNumberOfItems;
  426. WLAN_BSS_ENTRY wlanBssEntries[1];
  427. } WLAN_BSS_LIST, *PWLAN_BSS_LIST;
  428. typedef struct _WLAN_COUNTRY_OR_REGION_STRING_LIST {
  429. DWORD dwNumberOfItems;
  430. DOT11_COUNTRY_OR_REGION_STRING pCountryOrRegionStringList[1];
  431. } WLAN_COUNTRY_OR_REGION_STRING_LIST, *PWLAN_COUNTRY_OR_REGION_STRING_LIST;
  432. #define WLAN_MAX_PHY_INDEX 64
  433. typedef struct _WLAN_INTERFACE_CAPABILITY {
  434. WLAN_INTERFACE_TYPE interfaceType;
  435. WINBOOL bDot11DSupported;
  436. DWORD dwMaxDesiredSsidListSize;
  437. DWORD dwMaxDesiredBssidListSize;
  438. DWORD dwNumberOfSupportedPhys;
  439. DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_INDEX];
  440. } WLAN_INTERFACE_CAPABILITY, *PWLAN_INTERFACE_CAPABILITY;
  441. typedef struct _WLAN_MAC_FRAME_STATISTICS {
  442. ULONGLONG ullTransmittedFrameCount;
  443. ULONGLONG ullReceivedFrameCount;
  444. ULONGLONG ullWEPExcludedCount;
  445. ULONGLONG ullTKIPLocalMICFailures;
  446. ULONGLONG ullTKIPReplays;
  447. ULONGLONG ullTKIPICVErrorCount;
  448. ULONGLONG ullCCMPReplays;
  449. ULONGLONG ullCCMPDecryptErrors;
  450. ULONGLONG ullWEPUndecryptableCount;
  451. ULONGLONG ullWEPICVErrorCount;
  452. ULONGLONG ullDecryptSuccessCount;
  453. ULONGLONG ullDecryptFailureCount;
  454. } WLAN_MAC_FRAME_STATISTICS, *PWLAN_MAC_FRAME_STATISTICS;
  455. typedef struct _WLAN_MSM_NOTIFICATION_DATA {
  456. WLAN_CONNECTION_MODE wlanConnectionMode;
  457. WCHAR strProfileName[WLAN_MAX_NAME_LENGTH];
  458. DOT11_SSID dot11Ssid;
  459. DOT11_BSS_TYPE dot11BssType;
  460. DOT11_MAC_ADDRESS dot11MacAddr;
  461. BOOL bSecurityEnabled;
  462. BOOL bFirstPeer;
  463. BOOL bLastPeer;
  464. WLAN_REASON_CODE wlanReasonCode;
  465. } WLAN_MSM_NOTIFICATION_DATA, *PWLAN_MSM_NOTIFICATION_DATA;
  466. typedef struct _WLAN_PHY_FRAME_STATISTICS {
  467. ULONGLONG ullTransmittedFrameCount;
  468. ULONGLONG ullMulticastTransmittedFrameCount;
  469. ULONGLONG ullFailedCount;
  470. ULONGLONG ullRetryCount;
  471. ULONGLONG ullMultipleRetryCount;
  472. ULONGLONG ullMaxTXLifetimeExceededCount;
  473. ULONGLONG ullTransmittedFragmentCount;
  474. ULONGLONG ullRTSSuccessCount;
  475. ULONGLONG ullRTSFailureCount;
  476. ULONGLONG ullACKFailureCount;
  477. ULONGLONG ullReceivedFrameCount;
  478. ULONGLONG ullMulticastReceivedFrameCount;
  479. ULONGLONG ullPromiscuousReceivedFrameCount;
  480. ULONGLONG ullMaxRXLifetimeExceededCount;
  481. ULONGLONG ullFrameDuplicateCount;
  482. ULONGLONG ullReceivedFragmentCount;
  483. ULONGLONG ullPromiscuousReceivedFragmentCount;
  484. ULONGLONG ullFCSErrorCount;
  485. } WLAN_PHY_FRAME_STATISTICS, *PWLAN_PHY_FRAME_STATISTICS;
  486. typedef struct _WLAN_PHY_RADIO_STATE {
  487. DWORD dwPhyIndex;
  488. DOT11_RADIO_STATE dot11SoftwareRadioState;
  489. DOT11_RADIO_STATE dot11HardwareRadioState;
  490. } WLAN_PHY_RADIO_STATE, *PWLAN_PHY_RADIO_STATE;
  491. typedef struct _WLAN_RADIO_STATE {
  492. DWORD dwNumberOfPhys;
  493. WLAN_PHY_RADIO_STATE PhyRadioState[64];
  494. } WLAN_RADIO_STATE, *PWLAN_RADIO_STATE;
  495. #define DOT11_PSD_IE_MAX_DATA_SIZE 240
  496. #define DOT11_PSD_IE_MAX_ENTRY_NUMBER 5
  497. typedef struct _WLAN_RAW_DATA {
  498. DWORD dwDataSize;
  499. BYTE DataBlob[1];
  500. } WLAN_RAW_DATA, *PWLAN_RAW_DATA;
  501. typedef struct _WLAN_RAW_DATA_LIST {
  502. DWORD dwTotalSize;
  503. DWORD dwNumberOfItems;
  504. struct {
  505. DWORD dwDataOffset;
  506. DWORD dwDataSize;
  507. } DataList[1];
  508. } WLAN_RAW_DATA_LIST, *PWLAN_RAW_DATA_LIST;
  509. typedef struct _WLAN_STATISTICS {
  510. ULONGLONG ullFourWayHandshakeFailures;
  511. ULONGLONG ullTKIPCounterMeasuresInvoked;
  512. ULONGLONG ullReserved;
  513. WLAN_MAC_FRAME_STATISTICS MacUcastCounters;
  514. WLAN_MAC_FRAME_STATISTICS MacMcastCounters;
  515. DWORD dwNumberOfPhys;
  516. WLAN_PHY_FRAME_STATISTICS PhyCounters[1];
  517. } WLAN_STATISTICS, *PWLAN_STATISTICS;
  518. DWORD WINAPI WlanExtractPsdIEDataList(
  519. HANDLE hClientHandle,
  520. DWORD dwIeDataSize,
  521. const PBYTE pRawIeData,
  522. LPCWSTR strFormat,
  523. PVOID pReserved,
  524. PWLAN_RAW_DATA_LIST *ppPsdIEDataList
  525. );
  526. DWORD WINAPI WlanGetFilterList(
  527. HANDLE hClientHandle,
  528. WLAN_FILTER_LIST_TYPE wlanFilterListType,
  529. PVOID pReserved,
  530. PDOT11_NETWORK_LIST *ppNetworkList
  531. );
  532. DWORD WINAPI WlanGetInterfaceCapability(
  533. HANDLE hClientHandle,
  534. const GUID *pInterfaceGuid,
  535. PVOID pReserved,
  536. PWLAN_INTERFACE_CAPABILITY *ppCapability
  537. );
  538. DWORD WINAPI WlanGetNetworkBssList(
  539. HANDLE hClientHandle,
  540. const GUID *pInterfaceGuid,
  541. const PDOT11_SSID pDot11Ssid,
  542. DOT11_BSS_TYPE dot11BssType,
  543. WINBOOL bSecurityEnabled,
  544. PVOID pReserved,
  545. PWLAN_BSS_LIST *ppWlanBssList
  546. );
  547. DWORD WINAPI WlanGetProfileCustomUserData(
  548. HANDLE hClientHandle,
  549. const GUID *pInterfaceGuid,
  550. LPCWSTR strProfileName,
  551. PVOID pReserved,
  552. DWORD *pdwDataSize,
  553. PBYTE *ppData
  554. );
  555. DWORD WINAPI WlanGetSecuritySettings(
  556. HANDLE hClientHandle,
  557. WLAN_SECURABLE_OBJECT SecurableObject,
  558. PWLAN_OPCODE_VALUE_TYPE pValueType,
  559. LPWSTR *pstrCurrentSDDL,
  560. PDWORD pdwGrantedAccess
  561. );
  562. DWORD WINAPI WlanIhvControl(
  563. HANDLE hClientHandle,
  564. const GUID *pInterfaceGuid,
  565. WLAN_IHV_CONTROL_TYPE Type,
  566. DWORD dwInBufferSize,
  567. PVOID pInBuffer,
  568. DWORD dwOutBufferSize,
  569. PVOID pOutBuffer,
  570. PDWORD pdwBytesReturned
  571. );
  572. DWORD WINAPI WlanQueryAutoConfigParameter(
  573. HANDLE hClientHandle,
  574. WLAN_AUTOCONF_OPCODE OpCode,
  575. PVOID pReserved,
  576. PDWORD pdwDataSize,
  577. PVOID ppData,
  578. PWLAN_OPCODE_VALUE_TYPE pWlanOpcodeValueType
  579. );
  580. DWORD WINAPI WlanRenameProfile(
  581. HANDLE hClientHandle,
  582. const GUID *pInterfaceGuid,
  583. LPCWSTR strOldProfileName,
  584. LPCWSTR strNewProfileName,
  585. PVOID pReserved
  586. );
  587. #define WLAN_PROFILE_USER 0x00000002
  588. #define WLAN_PROFILE_CONNECTION_MODE_SET_BY_CLIENT 0x00010000
  589. #define WLAN_PROFILE_CONNECTION_MODE_AUTO 0x00020000
  590. DWORD WINAPI WlanSaveTemporaryProfile(
  591. HANDLE hClientHandle,
  592. const GUID *pInterfaceGuid,
  593. LPCWSTR strProfileName,
  594. LPCWSTR strAllUserProfileSecurity,
  595. DWORD dwFlags,
  596. WINBOOL bOverWrite,
  597. PVOID pReserved
  598. );
  599. DWORD WINAPI WlanScan(
  600. HANDLE hClientHandle,
  601. const GUID *pInterfaceGuid,
  602. const PDOT11_SSID pDot11Ssid,
  603. const PWLAN_RAW_DATA pIeData,
  604. PVOID pReserved
  605. );
  606. DWORD WINAPI WlanSetAutoConfigParameter(
  607. HANDLE hClientHandle,
  608. WLAN_AUTOCONF_OPCODE OpCode,
  609. DWORD dwDataSize,
  610. const PVOID pData,
  611. PVOID pReserved
  612. );
  613. DWORD WINAPI WlanSetFilterList(
  614. HANDLE hClientHandle,
  615. WLAN_FILTER_LIST_TYPE wlanFilterListType,
  616. const PDOT11_NETWORK_LIST pNetworkList,
  617. PVOID pReserved
  618. );
  619. DWORD WINAPI WlanSetProfileCustomUserData(
  620. HANDLE hClientHandle,
  621. const GUID *pInterfaceGuid,
  622. LPCWSTR strProfileName,
  623. DWORD dwDataSize,
  624. const PBYTE pData,
  625. PVOID pReserved
  626. );
  627. DWORD WlanSetProfileEapUserData(
  628. HANDLE hClientHandle,
  629. const GUID *pInterfaceGuid,
  630. LPCWSTR strProfileName,
  631. EAP_METHOD_TYPE eapType,
  632. DWORD dwFlags,
  633. DWORD dwEapUserDataSize,
  634. const LPBYTE pbEapUserData,
  635. PVOID pReserved
  636. );
  637. DWORD WINAPI WlanSetPsdIEDataList(
  638. HANDLE hClientHandle,
  639. LPCWSTR strFormat,
  640. const PWLAN_RAW_DATA_LIST pPsdIEDataList,
  641. PVOID pReserved
  642. );
  643. DWORD WINAPI WlanSetSecuritySettings(
  644. HANDLE hClientHandle,
  645. WLAN_SECURABLE_OBJECT SecurableObject,
  646. LPCWSTR strModifiedSDDL
  647. );
  648. DWORD WINAPI WlanUIEditProfile(
  649. DWORD dwClientVersion,
  650. LPCWSTR wstrProfileName,
  651. GUID *pInterfaceGuid,
  652. HWND hWnd,
  653. WL_DISPLAY_PAGES wlStartPage,
  654. PVOID pReserved,
  655. PWLAN_REASON_CODE *pWlanReasonCode
  656. );
  657. #ifdef __cplusplus
  658. }
  659. #endif
  660. #endif /*_INC_WLANAPI*/