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 /// Automatically imported and edited from the druntime module
11 /// core.sys.windows.iphlpapi for the auto-generated win32 package.
12 module win32.iphlpapi;
13 //version (Windows):
14 @system:
15 
16 import win32.ipexport, win32.iprtrmib, win32.iptypes;
17 import win32.winbase, win32.windef;
18 
19 extern (Windows) {
20     DWORD AddIPAddress(IPAddr, IPMask, DWORD, PULONG, PULONG);
21     DWORD CreateIpForwardEntry(PMIB_IPFORWARDROW);
22     DWORD CreateIpNetEntry(PMIB_IPNETROW);
23     DWORD CreateProxyArpEntry(DWORD, DWORD, DWORD);
24     DWORD DeleteIPAddress(ULONG);
25     DWORD DeleteIpForwardEntry(PMIB_IPFORWARDROW);
26     DWORD DeleteIpNetEntry(PMIB_IPNETROW);
27     DWORD DeleteProxyArpEntry(DWORD, DWORD, DWORD);
28     DWORD EnableRouter(HANDLE*, OVERLAPPED*);
29     DWORD FlushIpNetTable(DWORD);
30     DWORD GetAdapterIndex(LPWSTR, PULONG);
31     DWORD GetAdaptersInfo(PIP_ADAPTER_INFO, PULONG);
32     DWORD GetBestInterface(IPAddr, PDWORD);
33     DWORD GetBestRoute(DWORD, DWORD, PMIB_IPFORWARDROW);
34     DWORD GetFriendlyIfIndex(DWORD);
35     DWORD GetIcmpStatistics(PMIB_ICMP);
36     DWORD GetIfEntry(PMIB_IFROW);
37     DWORD GetIfTable(PMIB_IFTABLE, PULONG, BOOL);
38     DWORD GetInterfaceInfo(PIP_INTERFACE_INFO, PULONG);
39     DWORD GetIpAddrTable(PMIB_IPADDRTABLE, PULONG, BOOL);
40     DWORD GetIpForwardTable(PMIB_IPFORWARDTABLE, PULONG, BOOL);
41     DWORD GetIpNetTable(PMIB_IPNETTABLE, PULONG, BOOL);
42     DWORD GetIpStatistics(PMIB_IPSTATS);
43     DWORD GetNetworkParams(PFIXED_INFO, PULONG);
44     DWORD GetNumberOfInterfaces(PDWORD);
45     DWORD GetPerAdapterInfo(ULONG, PIP_PER_ADAPTER_INFO, PULONG);
46     BOOL GetRTTAndHopCount(IPAddr, PULONG, ULONG, PULONG);
47     DWORD GetTcpStatistics(PMIB_TCPSTATS);
48     DWORD GetTcpTable(PMIB_TCPTABLE, PDWORD, BOOL);
49     DWORD GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,
50       PULONG);
51     DWORD GetUdpStatistics(PMIB_UDPSTATS);
52     DWORD GetUdpTable(PMIB_UDPTABLE, PDWORD, BOOL);
53     DWORD IpReleaseAddress(PIP_ADAPTER_INDEX_MAP);
54     DWORD IpRenewAddress(PIP_ADAPTER_INDEX_MAP);
55     DWORD NotifyAddrChange(PHANDLE, LPOVERLAPPED);
56     DWORD NotifyRouteChange(PHANDLE, LPOVERLAPPED);
57     DWORD SendARP(IPAddr, IPAddr, PULONG, PULONG);
58     DWORD SetIfEntry(PMIB_IFROW);
59     DWORD SetIpForwardEntry(PMIB_IPFORWARDROW);
60     DWORD SetIpNetEntry(PMIB_IPNETROW);
61     DWORD SetIpStatistics(PMIB_IPSTATS);
62     DWORD SetIpTTL(UINT);
63     DWORD SetTcpEntry(PMIB_TCPROW);
64     DWORD UnenableRouter(OVERLAPPED*, LPDWORD);
65 }