Release 1.5.29.
[wine] / include / iphlpapi.h
1 /* WINE iphlpapi.h
2  * Copyright (C) 2003 Juan Lang
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 #ifndef WINE_IPHLPAPI_H__
19 #define WINE_IPHLPAPI_H__
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 #include <iprtrmib.h>
26 #include <ipexport.h>
27 #include <iptypes.h>
28
29 DWORD WINAPI GetExtendedTcpTable(PVOID pTcpTable, PDWORD pdwSize, BOOL bOrder,
30  ULONG ulAf, TCP_TABLE_CLASS TableClass, ULONG Reserved);
31
32 DWORD WINAPI GetExtendedUdpTable(PVOID pUdpTable, PDWORD pdwSize, BOOL bOrder,
33  ULONG ulAf, UDP_TABLE_CLASS TableClass, ULONG Reserved);
34
35 DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf);
36
37 DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow);
38
39 DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder);
40
41 DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize,
42  BOOL bOrder);
43
44 DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize,
45  BOOL bOrder);
46
47 DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable,
48  PULONG pdwSize, BOOL bOrder);
49
50 DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, BOOL bOrder);
51
52 DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, BOOL bOrder);
53
54 DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats);
55
56 DWORD WINAPI GetIpStatisticsEx(PMIB_IPSTATS pStats, DWORD dwFamily);
57
58 DWORD WINAPI GetIcmpStatistics(PMIB_ICMP pStats);
59
60 DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS pStats);
61
62 DWORD WINAPI GetTcpStatisticsEx(PMIB_TCPSTATS pStats, DWORD dwFamily);
63
64 DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS pStats);
65
66 DWORD WINAPI GetUdpStatisticsEx(PMIB_UDPSTATS pStats, DWORD dwFamily);
67
68 DWORD WINAPI SetIfEntry(PMIB_IFROW pIfRow);
69
70 DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute);
71
72 DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW pRoute);
73
74 DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute);
75
76 DWORD WINAPI SetIpStatistics(PMIB_IPSTATS pIpStats);
77
78 DWORD WINAPI SetIpTTL(UINT nTTL);
79
80 DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW pArpEntry);
81
82 DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW pArpEntry);
83
84 DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW pArpEntry);
85
86 DWORD WINAPI FlushIpNetTable(DWORD dwIfIndex);
87
88 DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask,
89  DWORD dwIfIndex);
90
91 DWORD WINAPI DeleteProxyArpEntry(DWORD dwAddress, DWORD dwMask,
92  DWORD dwIfIndex);
93
94 DWORD WINAPI SetTcpEntry(PMIB_TCPROW pTcpRow);
95
96 DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen);
97
98 DWORD WINAPI GetUniDirectionalAdapterInfo(
99  PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen);
100
101 DWORD WINAPI GetBestInterface(IPAddr dwDestAddr, PDWORD pdwBestIfIndex);
102
103 #ifdef __WINE_WINSOCKAPI_STDLIB_H
104 DWORD WINAPI GetBestInterfaceEx(
105 #ifdef USE_WS_PREFIX
106     struct WS_sockaddr *pDestAddr,
107 #else
108     struct sockaddr *pDestAddr,
109 #endif
110     PDWORD pdwBestIfIndex);
111 #endif
112
113 DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr,
114  PMIB_IPFORWARDROW   pBestRoute);
115
116 DWORD WINAPI NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped);
117
118 DWORD WINAPI NotifyRouteChange(PHANDLE Handle, LPOVERLAPPED overlapped);
119
120 BOOL WINAPI CancelIPChangeNotify(LPOVERLAPPED overlapped);
121
122 DWORD WINAPI GetAdapterIndex(IN LPWSTR AdapterName, OUT PULONG IfIndex);
123
124 DWORD WINAPI AddIPAddress(IPAddr Address, IPMask IpMask, DWORD IfIndex,
125  PULONG NTEContext, PULONG NTEInstance);
126
127 DWORD WINAPI DeleteIPAddress(ULONG NTEContext);
128
129 DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen);
130
131 DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen);
132
133 DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex,
134  PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen);
135
136 DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo);
137
138 DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo);
139
140 DWORD WINAPI SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr,
141  PULONG  PhyAddrLen);
142
143 BOOL WINAPI GetRTTAndHopCount(IPAddr DestIpAddress, PULONG HopCount,
144  ULONG  MaxHops, PULONG RTT);
145
146 DWORD WINAPI GetFriendlyIfIndex(DWORD IfIndex);
147
148 DWORD WINAPI EnableRouter(HANDLE* pHandle, OVERLAPPED* pOverlapped);
149
150 DWORD WINAPI UnenableRouter(OVERLAPPED* pOverlapped, LPDWORD lpdwEnableCount);
151
152 #ifdef _WINSOCK2API_
153 ULONG WINAPI GetAdaptersAddresses(ULONG family, ULONG flags, PVOID reserved,
154                                   PIP_ADAPTER_ADDRESSES aa, PULONG buflen);
155 #endif
156
157 #ifdef __cplusplus
158 }
159 #endif
160
161 #endif /* WINE_IPHLPAPI_H__ */