1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * Authors: Stewart Gordon
7  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8  * Source: $(DRUNTIMESRC core/sys/windows/_iphlpapi.d)
9  */
10 module core.sys.windows.iphlpapi;
11 version (Windows):
12 
13 import core.sys.windows.ipexport, core.sys.windows.iprtrmib, core.sys.windows.iptypes;
14 import core.sys.windows.winbase, core.sys.windows.windef;
15 
16 extern (Windows) {
17     DWORD AddIPAddress(IPAddr, IPMask, DWORD, PULONG, PULONG);
18     DWORD CreateIpForwardEntry(PMIB_IPFORWARDROW);
19     DWORD CreateIpNetEntry(PMIB_IPNETROW);
20     DWORD CreateProxyArpEntry(DWORD, DWORD, DWORD);
21     DWORD DeleteIPAddress(ULONG);
22     DWORD DeleteIpForwardEntry(PMIB_IPFORWARDROW);
23     DWORD DeleteIpNetEntry(PMIB_IPNETROW);
24     DWORD DeleteProxyArpEntry(DWORD, DWORD, DWORD);
25     DWORD EnableRouter(HANDLE*, OVERLAPPED*);
26     DWORD FlushIpNetTable(DWORD);
27     DWORD GetAdapterIndex(LPWSTR, PULONG);
28     DWORD GetAdaptersInfo(PIP_ADAPTER_INFO, PULONG);
29     DWORD GetBestInterface(IPAddr, PDWORD);
30     DWORD GetBestRoute(DWORD, DWORD, PMIB_IPFORWARDROW);
31     DWORD GetFriendlyIfIndex(DWORD);
32     DWORD GetIcmpStatistics(PMIB_ICMP);
33     DWORD GetIfEntry(PMIB_IFROW);
34     DWORD GetIfTable(PMIB_IFTABLE, PULONG, BOOL);
35     DWORD GetInterfaceInfo(PIP_INTERFACE_INFO, PULONG);
36     DWORD GetIpAddrTable(PMIB_IPADDRTABLE, PULONG, BOOL);
37     DWORD GetIpForwardTable(PMIB_IPFORWARDTABLE, PULONG, BOOL);
38     DWORD GetIpNetTable(PMIB_IPNETTABLE, PULONG, BOOL);
39     DWORD GetIpStatistics(PMIB_IPSTATS);
40     DWORD GetNetworkParams(PFIXED_INFO, PULONG);
41     DWORD GetNumberOfInterfaces(PDWORD);
42     DWORD GetPerAdapterInfo(ULONG, PIP_PER_ADAPTER_INFO, PULONG);
43     BOOL GetRTTAndHopCount(IPAddr, PULONG, ULONG, PULONG);
44     DWORD GetTcpStatistics(PMIB_TCPSTATS);
45     DWORD GetTcpTable(PMIB_TCPTABLE, PDWORD, BOOL);
46     DWORD GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,
47       PULONG);
48     DWORD GetUdpStatistics(PMIB_UDPSTATS);
49     DWORD GetUdpTable(PMIB_UDPTABLE, PDWORD, BOOL);
50     DWORD IpReleaseAddress(PIP_ADAPTER_INDEX_MAP);
51     DWORD IpRenewAddress(PIP_ADAPTER_INDEX_MAP);
52     DWORD NotifyAddrChange(PHANDLE, LPOVERLAPPED);
53     DWORD NotifyRouteChange(PHANDLE, LPOVERLAPPED);
54     DWORD SendARP(IPAddr, IPAddr, PULONG, PULONG);
55     DWORD SetIfEntry(PMIB_IFROW);
56     DWORD SetIpForwardEntry(PMIB_IPFORWARDROW);
57     DWORD SetIpNetEntry(PMIB_IPNETROW);
58     DWORD SetIpStatistics(PMIB_IPSTATS);
59     DWORD SetIpTTL(UINT);
60     DWORD SetTcpEntry(PMIB_TCPROW);
61     DWORD UnenableRouter(OVERLAPPED*, LPDWORD);
62 }