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