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