diff --git a/dlls/wlanapi/main.c b/dlls/wlanapi/main.c index bb139a029a7..bc9c9b1e09f 100644 --- a/dlls/wlanapi/main.c +++ b/dlls/wlanapi/main.c @@ -147,6 +147,15 @@ DWORD WINAPI WlanRegisterNotification(HANDLE handle, DWORD notify_source, BOOL i return ERROR_CALL_NOT_IMPLEMENTED; } +DWORD WINAPI WlanGetAvailableNetworkList(HANDLE handle, const GUID *guid, DWORD flags, + void *reserved, WLAN_AVAILABLE_NETWORK_LIST **network_list) +{ + FIXME("(%p, %s, 0x%x, %p, %p) stub\n", + handle, wine_dbgstr_guid(guid), flags, reserved, network_list); + + return ERROR_CALL_NOT_IMPLEMENTED; +} + void WINAPI WlanFreeMemory(void *ptr) { TRACE("(%p)\n", ptr); diff --git a/dlls/wlanapi/wlanapi.spec b/dlls/wlanapi/wlanapi.spec index a630e0a4ba9..dc1b9078092 100644 --- a/dlls/wlanapi/wlanapi.spec +++ b/dlls/wlanapi/wlanapi.spec @@ -6,7 +6,7 @@ @ stdcall WlanEnumInterfaces(long ptr ptr) @ stub WlanExtractPsdIEDataList @ stdcall WlanFreeMemory(ptr) -@ stub WlanGetAvailableNetworkList +@ stdcall WlanGetAvailableNetworkList(ptr ptr long ptr ptr) @ stub WlanGetFilterList @ stub WlanGetInterfaceCapability @ stub WlanGetNetworkBssList diff --git a/include/wlanapi.h b/include/wlanapi.h index f3d3ea6040c..1cd8c93e653 100644 --- a/include/wlanapi.h +++ b/include/wlanapi.h @@ -69,6 +69,86 @@ typedef struct _WLAN_NOTIFICATION_DATA typedef void (WINAPI *WLAN_NOTIFICATION_CALLBACK)(WLAN_NOTIFICATION_DATA *, void *); +typedef enum _DOT11_BSS_TYPE +{ + dot11_BSS_type_infrastructure = 0x01, + dot11_BSS_type_independent = 0x02, + dot11_BSS_type_any = 0x03 +} DOT11_BSS_TYPE, *PDOT11_BSS_TYPE; + +typedef DWORD WLAN_REASON_CODE, *PWLAN_REASON_CODE, WLAN_SIGNAL_QUALITY; + +typedef enum _DOT11_AUTH_ALGORITHM +{ + DOT11_AUTH_ALGO_80211_OPEN = 0x01, + DOT11_AUTH_ALGO_80211_SHARED_KEY = 0x02, + DOT11_AUTH_ALGO_WPA = 0x03, + DOT11_AUTH_ALGO_WPA_PSK = 0x04, + DOT11_AUTH_ALGO_WPA_NONE = 0x05, + DOT11_AUTH_ALGO_RSNA = 0x06, + DOT11_AUTH_ALGO_RSNA_PSK = 0x07, + DOT11_AUTH_ALGO_IHV_START = 0x80000000, + DOT11_AUTH_ALGO_IHV_END = 0xFFFFFFFF +} DOT11_AUTH_ALGORITHM, *PDOT11_AUTH_ALGORITHM; + +typedef enum _DOT11_CIPHER_ALGORITHM +{ + DOT11_CIPHER_ALGO_NONE = 0x00, + DOT11_CIPHER_ALGO_WEP40 = 0x01, + DOT11_CIPHER_ALGO_TKIP = 0x02, + DOT11_CIPHER_ALGO_CCMP = 0x04, + DOT11_CIPHER_ALGO_WEP104 = 0x05, + DOT11_CIPHER_ALGO_WPA_USE_GROUP = 0x100, + DOT11_CIPHER_ALGO_RSN_USE_GROUP = 0x100, + DOT11_CIPHER_ALGO_WEP = 0x101, + DOT11_CIPHER_ALGO_IHV_START = 0x80000000, + DOT11_CIPHER_ALGO_IHV_END = 0xFFFFFFFF +} DOT11_CIPHER_ALGORITHM, *PDOT11_CIPHER_ALGORITHM; + +typedef enum _DOT11_PHY_TYPE +{ + dot11_phy_type_unknown = 0x00, + dot11_phy_type_any = 0x00, + dot11_phy_type_fhss = 0x01, + dot11_phy_type_dsss = 0x02, + dot11_phy_type_irbaseband = 0x03, + dot11_phy_type_ofdm = 0x04, + dot11_phy_type_hrdsss = 0x05, + dot11_phy_type_erp = 0x06, + dot11_phy_type_ht = 0x07, + dot11_phy_type_vht = 0x08, + dot11_phy_type_IHV_start = 0x80000000, + dot11_phy_type_IHV_end = 0xFFFFFFFF +} DOT11_PHY_TYPE, *PDOT11_PHY_TYPE; + +#define WLAN_MAX_PHY_TYPE_NUMBER 8 + +typedef struct _WLAN_AVAILABLE_NETWORK +{ + WCHAR strProfileName[256]; + DOT11_SSID dot11Ssid; + DOT11_BSS_TYPE dot11BssType; + ULONG uNumberOfBssids; + BOOL bNetworkConnectable; + WLAN_REASON_CODE wlanNotConnectableReason; + ULONG uNumberOfPhyTypes; + DOT11_PHY_TYPE dot11PhyTypes[WLAN_MAX_PHY_TYPE_NUMBER]; + BOOL bMorePhyTypes; + WLAN_SIGNAL_QUALITY wlanSignalQuality; + BOOL bSecurityEnabled; + DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm; + DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm; + DWORD dwFlags; + DWORD dwReserved; +} WLAN_AVAILABLE_NETWORK, *PWLAN_AVAILABLE_NETWORK; + +typedef struct _WLAN_AVAILABLE_NETWORK_LIST +{ + DWORD dwNumberOfItems; + DWORD dwIndex; + WLAN_AVAILABLE_NETWORK Network[1]; +} WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST; + DWORD WINAPI WlanCloseHandle(HANDLE, void *); DWORD WINAPI WlanEnumInterfaces(HANDLE, void *, WLAN_INTERFACE_INFO_LIST **); DWORD WINAPI WlanOpenHandle(DWORD, void *, DWORD *, HANDLE *); @@ -76,5 +156,6 @@ void *WINAPI WlanAllocateMemory(DWORD); void WINAPI WlanFreeMemory(void *); DWORD WINAPI WlanScan(HANDLE, const GUID *, const DOT11_SSID *, const WLAN_RAW_DATA *, void *); DWORD WINAPI WlanRegisterNotification(HANDLE, DWORD, BOOL, WLAN_NOTIFICATION_CALLBACK, void *, void *, DWORD *); +DWORD WINAPI WlanGetAvailableNetworkList(HANDLE, const GUID *, DWORD, void *, WLAN_AVAILABLE_NETWORK_LIST **); #endif /* _WLAN_WLANAPI_H */