1c2c66affSColin Finck #ifndef _IPHLPAPI_H 2c2c66affSColin Finck #define _IPHLPAPI_H 3c2c66affSColin Finck 4c2c66affSColin Finck #ifdef __cplusplus 5c2c66affSColin Finck extern "C" { 6c2c66affSColin Finck #endif 7c2c66affSColin Finck 8c2c66affSColin Finck #include <iprtrmib.h> 9c2c66affSColin Finck #include <ipexport.h> 10c2c66affSColin Finck #include <iptypes.h> 11c2c66affSColin Finck 12c2c66affSColin Finck DWORD WINAPI AddIPAddress(IPAddr,IPMask,DWORD,PULONG,PULONG); 13c2c66affSColin Finck DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW); 14c2c66affSColin Finck DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW); 15c2c66affSColin Finck DWORD WINAPI CreateProxyArpEntry(DWORD,DWORD,DWORD); 16c2c66affSColin Finck DWORD WINAPI DeleteIPAddress(ULONG); 17c2c66affSColin Finck DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW); 18c2c66affSColin Finck DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW); 19c2c66affSColin Finck DWORD WINAPI DeleteProxyArpEntry(DWORD,DWORD,DWORD); 20c2c66affSColin Finck DWORD WINAPI EnableRouter(HANDLE*,OVERLAPPED*); 21c2c66affSColin Finck DWORD WINAPI FlushIpNetTable(DWORD); 22c2c66affSColin Finck DWORD WINAPI GetAdapterIndex(LPWSTR,PULONG); 23c2c66affSColin Finck #ifdef _WINSOCK2API_ 24c2c66affSColin Finck DWORD WINAPI GetAdaptersAddresses(ULONG,ULONG,PVOID,PIP_ADAPTER_ADDRESSES,PULONG); 25c2c66affSColin Finck #endif 26c2c66affSColin Finck DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO,PULONG); 27c2c66affSColin Finck DWORD WINAPI GetBestInterface(IPAddr,PDWORD); 28c2c66affSColin Finck DWORD WINAPI GetBestRoute(DWORD,DWORD,PMIB_IPFORWARDROW); 29c2c66affSColin Finck DWORD WINAPI GetExtendedTcpTable(PVOID,PDWORD,BOOL,ULONG,TCP_TABLE_CLASS,ULONG); 30fbdfe7bdSPierre Schweitzer DWORD WINAPI GetExtendedUdpTable(PVOID,PDWORD,BOOL,ULONG,UDP_TABLE_CLASS,ULONG); 31c2c66affSColin Finck DWORD WINAPI GetFriendlyIfIndex(DWORD); 32c2c66affSColin Finck DWORD WINAPI GetIcmpStatistics(PMIB_ICMP); 33c2c66affSColin Finck DWORD WINAPI GetIfEntry(PMIB_IFROW); 34c2c66affSColin Finck DWORD WINAPI GetIfTable(PMIB_IFTABLE,PULONG,BOOL); 35c2c66affSColin Finck DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO,PULONG); 36c2c66affSColin Finck DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE,PULONG,BOOL); 37c2c66affSColin Finck DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE,PULONG,BOOL); 38c2c66affSColin Finck DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE,PULONG,BOOL); 39c2c66affSColin Finck DWORD WINAPI GetIpStatistics(PMIB_IPSTATS); 40c2c66affSColin Finck DWORD WINAPI GetIpStatisticsEx(PMIB_IPSTATS,DWORD); 41c2c66affSColin Finck DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG); 42c2c66affSColin Finck DWORD WINAPI GetNumberOfInterfaces(PDWORD); 43c2c66affSColin Finck DWORD WINAPI GetOwnerModuleFromTcpEntry(PMIB_TCPROW_OWNER_MODULE,TCPIP_OWNER_MODULE_INFO_CLASS,PVOID,PDWORD); 44*78d70393SPierre Schweitzer DWORD WINAPI GetOwnerModuleFromUdpEntry(PMIB_UDPROW_OWNER_MODULE,TCPIP_OWNER_MODULE_INFO_CLASS,PVOID,PDWORD); 45c2c66affSColin Finck DWORD WINAPI GetPerAdapterInfo(ULONG,PIP_PER_ADAPTER_INFO, PULONG); 46c2c66affSColin Finck BOOL WINAPI GetRTTAndHopCount(IPAddr,PULONG,ULONG,PULONG); 47c2c66affSColin Finck DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS); 48c2c66affSColin Finck DWORD WINAPI GetTcpTable(PMIB_TCPTABLE,PDWORD,BOOL); 49c2c66affSColin Finck DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,PULONG); 50c2c66affSColin Finck DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS); 51c2c66affSColin Finck DWORD WINAPI GetUdpTable(PMIB_UDPTABLE,PDWORD,BOOL); 52c2c66affSColin Finck DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP); 53c2c66affSColin Finck DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP); 54c2c66affSColin Finck DWORD WINAPI NotifyAddrChange(PHANDLE,LPOVERLAPPED); 55c2c66affSColin Finck DWORD WINAPI NotifyRouteChange(PHANDLE,LPOVERLAPPED); 56c2c66affSColin Finck DWORD WINAPI SendARP(IPAddr,IPAddr,PULONG,PULONG); 57c2c66affSColin Finck DWORD WINAPI SetIfEntry(PMIB_IFROW); 58c2c66affSColin Finck DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW); 59c2c66affSColin Finck DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW); 60c2c66affSColin Finck DWORD WINAPI SetIpStatistics(PMIB_IPSTATS); 61c2c66affSColin Finck DWORD WINAPI SetIpTTL(UINT); 62c2c66affSColin Finck DWORD WINAPI SetTcpEntry(PMIB_TCPROW); 63c2c66affSColin Finck DWORD WINAPI UnenableRouter(OVERLAPPED*, LPDWORD); 64c2c66affSColin Finck 657ce2f09aSPierre Schweitzer #if (NTDDI_VERSION < NTDDI_VISTA) 667ce2f09aSPierre Schweitzer DWORD WINAPI AllocateAndGetTcpExTableFromStack(PVOID*,BOOL,HANDLE,DWORD,DWORD); 677ce2f09aSPierre Schweitzer DWORD WINAPI AllocateAndGetTcpExTable2FromStack(PVOID*,BOOL,HANDLE,DWORD,DWORD,TCP_TABLE_CLASS); 687ce2f09aSPierre Schweitzer DWORD WINAPI AllocateAndGetUdpExTableFromStack(PVOID*,BOOL,HANDLE,DWORD,DWORD); 697ce2f09aSPierre Schweitzer DWORD WINAPI AllocateAndGetUdpExTable2FromStack(PVOID*,BOOL,HANDLE,DWORD,DWORD,UDP_TABLE_CLASS); 707ce2f09aSPierre Schweitzer #endif 717ce2f09aSPierre Schweitzer 72c2c66affSColin Finck #if (NTDDI_VERSION >= NTDDI_VISTA) 73c2c66affSColin Finck #include <netioapi.h> 74c2c66affSColin Finck #endif 75c2c66affSColin Finck 76c2c66affSColin Finck #ifdef __cplusplus 77c2c66affSColin Finck } 78c2c66affSColin Finck #endif 79c2c66affSColin Finck 80c2c66affSColin Finck #endif /* _IPHLPAPI_H */ 81