2 * Copyright (C) 2003 Juan Lang
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.
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.
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #ifndef WINE_IPHLPAPI_H__
19 #define WINE_IPHLPAPI_H__
31 NhpAllocateAndGetInterfaceInfoFromStack(
32 OUT IP_INTERFACE_NAME_INFO **ppTable,
38 DWORD STDCALL AllocateAndGetIfTableFromStack(PMIB_IFTABLE *ppIfTable,
39 BOOL bOrder, HANDLE heap, DWORD flags);
40 DWORD STDCALL AllocateAndGetIpAddrTableFromStack(PMIB_IPADDRTABLE *ppIpAddrTable,
41 BOOL bOrder, HANDLE heap, DWORD flags);
42 DWORD STDCALL AllocateAndGetIpForwardTableFromStack(PMIB_IPFORWARDTABLE *
43 ppIpForwardTable, BOOL bOrder, HANDLE heap, DWORD flags);
44 DWORD STDCALL AllocateAndGetIpNetTableFromStack(PMIB_IPNETTABLE *ppIpNetTable,
45 BOOL bOrder, HANDLE heap, DWORD flags);
46 DWORD STDCALL AllocateAndGetTcpTableFromStack(PMIB_TCPTABLE *ppTcpTable,
47 BOOL bOrder, HANDLE heap, DWORD flags);
48 DWORD STDCALL AllocateAndGetUdpTableFromStack(PMIB_UDPTABLE *ppUdpTable,
49 BOOL bOrder, HANDLE heap, DWORD flags);
51 DWORD STDCALL GetNumberOfInterfaces(PDWORD pdwNumIf);
53 DWORD STDCALL GetIfEntry(PMIB_IFROW pIfRow);
55 DWORD STDCALL GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, WINBOOL bOrder);
57 DWORD STDCALL GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize,
60 DWORD STDCALL GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize,
63 DWORD STDCALL GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable,
64 PULONG pdwSize, WINBOOL bOrder);
66 DWORD STDCALL GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, WINBOOL bOrder);
68 DWORD STDCALL GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, WINBOOL bOrder);
70 DWORD STDCALL GetIpStatistics(PMIB_IPSTATS pStats);
72 DWORD STDCALL GetIpStatisticsEx(PMIB_IPSTATS pStats, DWORD dwFamily);
74 DWORD STDCALL GetIcmpStatistics(PMIB_ICMP pStats);
76 DWORD STDCALL GetTcpStatistics(PMIB_TCPSTATS pStats);
78 DWORD STDCALL GetTcpStatisticsEx(PMIB_TCPSTATS pStats, DWORD dwFamily);
80 DWORD STDCALL GetUdpStatistics(PMIB_UDPSTATS pStats);
82 DWORD STDCALL GetUdpStatisticsEx(PMIB_UDPSTATS pStats, DWORD dwFamily);
84 DWORD STDCALL SetIfEntry(PMIB_IFROW pIfRow);
86 DWORD STDCALL CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute);
88 DWORD STDCALL SetIpForwardEntry(PMIB_IPFORWARDROW pRoute);
90 DWORD STDCALL DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute);
92 DWORD STDCALL SetIpStatistics(PMIB_IPSTATS pIpStats);
94 DWORD STDCALL SetIpTTL(UINT nTTL);
96 DWORD STDCALL CreateIpNetEntry(PMIB_IPNETROW pArpEntry);
98 DWORD STDCALL SetIpNetEntry(PMIB_IPNETROW pArpEntry);
100 DWORD STDCALL DeleteIpNetEntry(PMIB_IPNETROW pArpEntry);
102 DWORD STDCALL FlushIpNetTable(DWORD dwIfIndex);
104 DWORD STDCALL CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask,
107 DWORD STDCALL DeleteProxyArpEntry(DWORD dwAddress, DWORD dwMask,
110 DWORD STDCALL SetTcpEntry(PMIB_TCPROW pTcpRow);
112 DWORD STDCALL GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen);
114 DWORD STDCALL GetUniDirectionalAdapterInfo(
115 PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen);
117 DWORD STDCALL GetBestInterface(IPAddr dwDestAddr, PDWORD pdwBestIfIndex);
119 DWORD STDCALL GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr,
120 PMIB_IPFORWARDROW pBestRoute);
122 DWORD STDCALL NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped);
124 DWORD STDCALL NotifyRouteChange(PHANDLE Handle, LPOVERLAPPED overlapped);
126 DWORD STDCALL GetAdapterIndex(LPWSTR AdapterName,PULONG IfIndex);
128 DWORD STDCALL AddIPAddress(IPAddr Address, IPMask IpMask, DWORD IfIndex,
129 PULONG NTEContext, PULONG NTEInstance);
131 DWORD STDCALL DeleteIPAddress(ULONG NTEContext);
133 DWORD STDCALL GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen);
135 DWORD STDCALL GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen);
137 DWORD STDCALL GetPerAdapterInfo(ULONG IfIndex,
138 PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen);
140 DWORD STDCALL IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo);
142 DWORD STDCALL IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo);
144 DWORD STDCALL SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr,
147 WINBOOL STDCALL GetRTTAndHopCount(IPAddr DestIpAddress, PULONG HopCount,
148 ULONG MaxHops, PULONG RTT);
150 DWORD STDCALL GetFriendlyIfIndex(DWORD IfIndex);
152 DWORD STDCALL EnableRouter(HANDLE* pHandle, OVERLAPPED* pOverlapped);
154 DWORD STDCALL UnenableRouter(OVERLAPPED* pOverlapped, LPDWORD lpdwEnableCount);
156 DWORD STDCALL GetIcmpStatisticsEx(PMIB_ICMP_EX pStats,DWORD dwFamily);
158 DWORD STDCALL NhpAllocateAndGetInterfaceInfoFromStack(IP_INTERFACE_NAME_INFO **ppTable,PDWORD pdwCount,WINBOOL bOrder,HANDLE hHeap,DWORD dwFlags);
160 DWORD STDCALL GetBestInterfaceEx(struct sockaddr *pDestAddr,PDWORD pdwBestIfIndex);
162 WINBOOL STDCALL CancelIPChangeNotify(LPOVERLAPPED notifyOverlapped);
164 PIP_ADAPTER_ORDER_MAP STDCALL GetAdapterOrderMap(VOID);
166 DWORD STDCALL GetAdaptersAddresses(ULONG Family,DWORD Flags,PVOID Reserved,PIP_ADAPTER_ADDRESSES pAdapterAddresses,PULONG pOutBufLen);
168 DWORD STDCALL DisableMediaSense(HANDLE *pHandle,OVERLAPPED *pOverLapped);
170 DWORD STDCALL RestoreMediaSense(OVERLAPPED* pOverlapped,LPDWORD lpdwEnableCount);
172 DWORD STDCALL GetIpErrorString(IP_STATUS ErrorCode,PWCHAR Buffer,PDWORD Size);
178 #endif /* WINE_IPHLPAPI_H__ */