diff --git a/mingw-w64-headers/include/eaptypes.h b/mingw-w64-headers/include/eaptypes.h
index dbaa315..d73deed 100644
--- a/mingw-w64-headers/include/eaptypes.h
+++ b/mingw-w64-headers/include/eaptypes.h
@@ -220,7 +220,7 @@
 
 typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_REQ;
 typedef EAP_CONFIG_INPUT_FIELD_ARRAY EAP_CRED_RESP;
-typedef EAP_CRED_RESP EAP_CRED_EXPIRY_REQ;
+typedef struct _EAP_CRED_EXPIRY_REQ EAP_CRED_EXPIRY_REQ;
 
 typedef union _EAP_UI_DATA_FORMAT {
   EAP_CRED_REQ *      credData;
@@ -293,28 +293,6 @@
   EAP_METHOD_INFO_EX *pEapMethods;
 } EAP_METHOD_INFO_ARRAY_EX, *PEAP_METHOD_INFO_ARRAY_EX;
 
-typedef struct _EAP_CONFIG_INPUT_FIELD_DATA {
-  DWORD                       dwSize;
-  EAP_CONFIG_INPUT_FIELD_TYPE Type;
-  DWORD                       dwFlagProps;
-  LPWSTR                      pwszLabel;
-  LPWSTR                      pwszData;
-  DWORD                       dwMinDataLength;
-  DWORD                       dwMaxDataLength;
-} EAP_CONFIG_INPUT_FIELD_DATA, *PEAP_CONFIG_INPUT_FIELD_DATA;
-
-typedef enum _EAP_CONFIG_INPUT_FIELD_TYPE {
-  EapConfigInputUsername,
-  EapConfigInputPassword,
-  EapConfigInputNetworkUsername,
-  EapConfigInputNetworkPassword,
-  EapConfigInputPin,
-  EapConfigInputPSK,
-  EapConfigInputEdit,
-  EapConfigSmartCardUsername,
-  EapConfigSmartCardError 
-} EAP_CONFIG_INPUT_FIELD_TYPE;
-
 typedef struct _EAP_CRED_EXPIRY_REQ {
   EAP_CONFIG_INPUT_FIELD_ARRAY curCreds;
   EAP_CONFIG_INPUT_FIELD_ARRAY newCreds;
diff --git a/mingw-w64-headers/include/windot11.h b/mingw-w64-headers/include/windot11.h
index 1b683aa..c83ebba 100644
--- a/mingw-w64-headers/include/windot11.h
+++ b/mingw-w64-headers/include/windot11.h
@@ -5,7 +5,7 @@
  */
 #ifndef _INC_WINDOT11
 #define _INC_WINDOT11
-#include <ntddnis.h>
+#include <ntddndis.h>
 #include <wlantypes.h>
 
 typedef UCHAR DOT11_MAC_ADDRESS[6];
diff --git a/mingw-w64-headers/include/wlanapi.h b/mingw-w64-headers/include/wlanapi.h
index 810857b..491d436 100644
--- a/mingw-w64-headers/include/wlanapi.h
+++ b/mingw-w64-headers/include/wlanapi.h
@@ -13,6 +13,7 @@
 #endif
 
 typedef DWORD WLAN_REASON_CODE, *PWLAN_REASON_CODE;
+typedef ULONG WLAN_SIGNAL_QUALITY, *PWLAN_SIGNAL_QUALITY;
 
 typedef struct _DOT11_NETWORK {
   DOT11_SSID     dot11Ssid;
@@ -144,12 +145,6 @@
   WLAN_AVAILABLE_NETWORK Network[1];
 } WLAN_AVAILABLE_NETWORK_LIST, *PWLAN_AVAILABLE_NETWORK_LIST;
 
-typedef struct _WLAN_BSS_LIST {
-  DWORD          dwTotalSize;
-  DWORD          dwNumberOfItems;
-  WLAN_BSS_ENTRY wlanBssEntries[1];
-} WLAN_BSS_LIST, *PWLAN_BSS_LIST;
-
 typedef struct _WLAN_SECURITY_ATTRIBUTES {
   WINBOOL                bSecurityEnabled;
   WINBOOL                bOneXEnabled;
@@ -166,7 +161,7 @@
 } WLAN_CONNECTION_ATTRIBUTES, *PWLAN_CONNECTION_ATTRIBUTES;
 
 /* Assuming stdcall */
-typedef VOID (CALLBAC *WLAN_NOTIFICATION_CALLBACK)(
+typedef VOID (CALLBACK *WLAN_NOTIFICATION_CALLBACK)(
   PWLAN_NOTIFICATION_DATA ,
   PVOID 
 );
@@ -319,14 +314,6 @@
   PDWORD pdwPrevNotifSource
 );
 
-DWORD WINAPI WlanScan(
-  HANDLE hClientHandle,
-  const GUID *pInterfaceGuid,
-  const PDOT11_SSID pDot11Ssid,
-  const PWLAN_RAW_DATA pIeData,
-  PVOID pReserved
-);
-
 DWORD WINAPI WlanSetInterface(
   HANDLE hClientHandle,
   const GUID *pInterfaceGuid,
@@ -373,7 +360,7 @@
 );
 
 #if (_WIN32_WINNT >= 0x0600)
-typedef char[3] DOT11_COUNTRY_OR_REGION_STRING;
+typedef char DOT11_COUNTRY_OR_REGION_STRING[3];
 
 typedef enum _WLAN_AUTOCONF_OPCODE {
   wlan_autoconf_opcode_start                                       = 0,
@@ -432,6 +419,13 @@
   DOT11_NETWORK Network[1];
 } DOT11_NETWORK_LIST, *PDOT11_NETWORK_LIST;
 
+#define DOT11_RATE_SET_MAX_LENGTH 126
+
+typedef struct _WLAN_RATE_SET {
+  ULONG  uRateSetLength;
+  USHORT usRateSet[DOT11_RATE_SET_MAX_LENGTH];
+} WLAN_RATE_SET, *PWLAN_RATE_SET;
+
 typedef struct _WLAN_BSS_ENTRY {
   DOT11_SSID        dot11Ssid;
   ULONG             uPhyId;
@@ -451,6 +445,12 @@
   ULONG             ulIeSize;
 } WLAN_BSS_ENTRY, *PWLAN_BSS_ENTRY;
 
+typedef struct _WLAN_BSS_LIST {
+  DWORD          dwTotalSize;
+  DWORD          dwNumberOfItems;
+  WLAN_BSS_ENTRY wlanBssEntries[1];
+} WLAN_BSS_LIST, *PWLAN_BSS_LIST;
+
 typedef struct _WLAN_COUNTRY_OR_REGION_STRING_LIST {
   DWORD                          dwNumberOfItems;
   DOT11_COUNTRY_OR_REGION_STRING pCountryOrRegionStringList[1];
@@ -526,13 +526,6 @@
   WLAN_PHY_RADIO_STATE PhyRadioState[64];
 } WLAN_RADIO_STATE, *PWLAN_RADIO_STATE;
 
-#define DOT11_RATE_SET_MAX_LENGTH 126
-
-typedef struct _WLAN_RATE_SET {
-  ULONG  uRateSetLength;
-  USHORT usRateSet[DOT11_RATE_SET_MAX_LENGTH];
-} WLAN_RATE_SET, *PWLAN_RATE_SET;
-
 #define DOT11_PSD_IE_MAX_DATA_SIZE 240
 #define DOT11_PSD_IE_MAX_ENTRY_NUMBER 5
 
@@ -652,6 +645,14 @@
   PVOID pReserved
 );
 
+DWORD WINAPI WlanScan(
+  HANDLE hClientHandle,
+  const GUID *pInterfaceGuid,
+  const PDOT11_SSID pDot11Ssid,
+  const PWLAN_RAW_DATA pIeData,
+  PVOID pReserved
+);
+
 DWORD WINAPI WlanSetAutoConfigParameter(
   HANDLE hClientHandle,
   WLAN_AUTOCONF_OPCODE OpCode,
diff --git a/mingw-w64-headers/include/wlantypes.h b/mingw-w64-headers/include/wlantypes.h
index eff7707..5b7aa3e 100644
--- a/mingw-w64-headers/include/wlantypes.h
+++ b/mingw-w64-headers/include/wlantypes.h
@@ -12,19 +12,6 @@
 
 #define DOT11_SSID_MAX_LENGTH 32
 
-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_AUTH_ALGORITHM {
   DOT11_AUTH_ALGO_80211_OPEN         = 1,
   DOT11_AUTH_ALGO_80211_SHARED_KEY   = 2,
