1 /***********************************************************************\
2 *                               iphlpapi.d                              *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Stewart Gordon                           *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.iphlpapi;
12 
13 import win32.ipexport, win32.iprtrmib, win32.iptypes;
14 private import win32.winbase, win32.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 }