1 /** 2 * @file iphlpapi.h 3 * Copyright 2012, 2013 MinGW.org project 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the next 13 * paragraph) shall be included in all copies or substantial portions of the 14 * Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 */ 24 #ifndef _IPHLPAPI_H 25 #define _IPHLPAPI_H 26 #pragma GCC system_header 27 #include <_mingw.h> 28 29 #include <iprtrmib.h> 30 #include <ipexport.h> 31 #include <iptypes.h> 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 DWORD WINAPI AddIPAddress(IPAddr,IPMask,DWORD,PULONG,PULONG); 37 DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW); 38 DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW); 39 DWORD WINAPI CreateProxyArpEntry(DWORD,DWORD,DWORD); 40 DWORD WINAPI DeleteIPAddress(ULONG); 41 DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW); 42 DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW); 43 DWORD WINAPI DeleteProxyArpEntry(DWORD,DWORD,DWORD); 44 DWORD WINAPI EnableRouter(HANDLE*,OVERLAPPED*); 45 DWORD WINAPI FlushIpNetTable(DWORD); 46 DWORD WINAPI GetAdapterIndex(LPWSTR,PULONG); 47 DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO,PULONG); 48 DWORD WINAPI GetBestInterface(IPAddr,PDWORD); 49 DWORD WINAPI GetBestRoute(DWORD,DWORD,PMIB_IPFORWARDROW); 50 DWORD WINAPI GetFriendlyIfIndex(DWORD); 51 DWORD WINAPI GetIcmpStatistics(PMIB_ICMP); 52 DWORD WINAPI GetIfEntry(PMIB_IFROW); 53 DWORD WINAPI GetIfTable(PMIB_IFTABLE,PULONG,BOOL); 54 DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO,PULONG); 55 DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE,PULONG,BOOL); 56 DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE,PULONG,BOOL); 57 DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE,PULONG,BOOL); 58 DWORD WINAPI GetIpStatistics(PMIB_IPSTATS); 59 DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG); 60 DWORD WINAPI GetNumberOfInterfaces(PDWORD); 61 DWORD WINAPI GetPerAdapterInfo(ULONG,PIP_PER_ADAPTER_INFO, PULONG); 62 BOOL WINAPI GetRTTAndHopCount(IPAddr,PULONG,ULONG,PULONG); 63 DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS); 64 DWORD WINAPI GetTcpTable(PMIB_TCPTABLE,PDWORD,BOOL); 65 DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,PULONG); 66 DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS); 67 DWORD WINAPI GetUdpTable(PMIB_UDPTABLE,PDWORD,BOOL); 68 DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP); 69 DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP); 70 DWORD WINAPI NotifyAddrChange(PHANDLE,LPOVERLAPPED); 71 DWORD WINAPI NotifyRouteChange(PHANDLE,LPOVERLAPPED); 72 DWORD WINAPI SendARP(IPAddr,IPAddr,PULONG,PULONG); 73 DWORD WINAPI SetIfEntry(PMIB_IFROW); 74 DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW); 75 DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW); 76 DWORD WINAPI SetIpStatistics(PMIB_IPSTATS); 77 DWORD WINAPI SetIpTTL(UINT); 78 DWORD WINAPI SetTcpEntry(PMIB_TCPROW); 79 DWORD WINAPI UnenableRouter(OVERLAPPED*, LPDWORD); 80 81 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP) 82 #define GAA_FLAG_SKIP_UNICAST 0x00000001 83 #define GAA_FLAG_SKIP_ANYCAST 0x00000002 84 #define GAA_FLAG_SKIP_MULTICAST 0x00000004 85 #define GAA_FLAG_SKIP_DNS_SERVER 0x00000008 86 #define GAA_FLAG_INCLUDE_PREFIX 0x00000010 87 #define GAA_FLAG_SKIP_FRIENDLY_NAME 0x00000020 88 #if (defined(_WINSOCK2_H)) 89 ULONG WINAPI GetAdaptersAddresses(ULONG,ULONG,PVOID,PIP_ADAPTER_ADDRESSES,PULONG); 90 #endif 91 DWORD WINAPI GetExtendedTcpTable (PVOID,PDWORD,BOOL,ULONG,TCP_TABLE_CLASS,ULONG); 92 #endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */ 93 94 #ifdef __cplusplus 95 } 96 #endif 97 #endif /* _IPHLPAPI_H */ 98