From 46a5b944e550d14036ce553868cbc2c16846818b Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 12 Jan 2015 18:15:39 +0000
Subject: [PATCH] Fix compilation errors since 'Update netioa-API'

iphlpapi.h needs to include <tcpmib.h>
{Get,Set}PerTcp{,6}ConnectionEStats is only
  for #if NTDDI_VERSION >= 0x06000000
IF_COUNTED_STRING was not defined in ifdef.h
---
 mingw-w64-headers/include/ifdef.h    | 5 +++++
 mingw-w64-headers/include/iphlpapi.h | 5 +++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/mingw-w64-headers/include/ifdef.h b/mingw-w64-headers/include/ifdef.h
index 8c5b028..d61285d 100644
--- a/mingw-w64-headers/include/ifdef.h
+++ b/mingw-w64-headers/include/ifdef.h
@@ -94,6 +94,11 @@ typedef union _NET_LUID {
 
 typedef NET_LUID IF_LUID, *PIF_LUID;
 
+typedef struct _IF_COUNTED_STRING {
+  USHORT Length;
+  WCHAR String[IF_MAX_STRING_SIZE + 1];
+} IF_COUNTED_STRING;
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/mingw-w64-headers/include/iphlpapi.h b/mingw-w64-headers/include/iphlpapi.h
index a237c8a..0eda8a4 100644
--- a/mingw-w64-headers/include/iphlpapi.h
+++ b/mingw-w64-headers/include/iphlpapi.h
@@ -18,6 +18,7 @@ extern "C" {
 #include <ipexport.h>
 #include <iptypes.h>
 #include <tcpestats.h>
+#include <tcpmib.h>
 
   DWORD WINAPI GetNumberOfInterfaces (PDWORD pdwNumIf);
   DWORD WINAPI GetIfEntry (PMIB_IFROW pIfRow);
@@ -43,13 +44,13 @@ extern "C" {
 #if NTDDI_VERSION >= 0x06000000
   ULONG WINAPI GetTcp6Table (PMIB_TCP6TABLE TcpTable, PULONG SizePointer, WINBOOL Order);
   ULONG WINAPI GetTcp6Table2 (PMIB_TCP6TABLE2 TcpTable, PULONG SizePointer, WINBOOL Order);
-#endif
   ULONG WINAPI GetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize);
   ULONG WINAPI SetPerTcpConnectionEStats (PMIB_TCPROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset);
   ULONG WINAPI GetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, PUCHAR Ros, ULONG RosVersion, ULONG RosSize, PUCHAR Rod, ULONG RodVersion, ULONG RodSize);
   ULONG WINAPI SetPerTcp6ConnectionEStats (PMIB_TCP6ROW Row, TCP_ESTATS_TYPE EstatsType, PUCHAR Rw, ULONG RwVersion, ULONG RwSize, ULONG Offset);
-  DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize);
   ULONG WINAPI GetUdp6Table (PMIB_UDP6TABLE Udp6Table, PULONG SizePointer, WINBOOL Order);
+#endif
+  DWORD WINAPI GetOwnerModuleFromTcp6Entry (PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize);
   DWORD WINAPI GetOwnerModuleFromUdp6Entry (PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize);
 #endif
   DWORD GetOwnerModuleFromPidAndInfo (ULONG ulPid, ULONGLONG *pInfo, TCPIP_OWNER_MODULE_INFO_CLASS Class, PVOID pBuffer, PDWORD pdwSize);
-- 
2.2.1

