dinput: Avoid deadlock when CS are acquired in different order.
[wine.git] / include / iphlpapi.h
blob86507dfd4d065c16b1dfa266a254e6b24024f8bc
1 /* WINE iphlpapi.h
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 #ifndef WINE_IPHLPAPI_H__
19 #define WINE_IPHLPAPI_H__
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
25 #include <iprtrmib.h>
26 #include <ipexport.h>
27 #include <iptypes.h>
29 DWORD WINAPI GetExtendedTcpTable(PVOID pTcpTable, PDWORD pdwSize, BOOL bOrder,
30 ULONG ulAf, TCP_TABLE_CLASS TableClass, ULONG Reserved);
32 DWORD WINAPI GetExtendedUdpTable(PVOID pUdpTable, PDWORD pdwSize, BOOL bOrder,
33 ULONG ulAf, UDP_TABLE_CLASS TableClass, ULONG Reserved);
35 DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf);
37 DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow);
39 DWORD WINAPI GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder);
41 DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize,
42 BOOL bOrder);
44 DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize,
45 BOOL bOrder);
47 DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable,
48 PULONG pdwSize, BOOL bOrder);
50 DWORD WINAPI GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, BOOL bOrder);
52 DWORD WINAPI GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, BOOL bOrder);
54 DWORD WINAPI GetUdp6Table(PMIB_UDP6TABLE pUdpTable, PDWORD pdwSize, BOOL bOrder);
56 DWORD WINAPI GetIpStatistics(PMIB_IPSTATS pStats);
58 DWORD WINAPI GetIpStatisticsEx(PMIB_IPSTATS pStats, DWORD dwFamily);
60 DWORD WINAPI GetIcmpStatistics(PMIB_ICMP pStats);
62 DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS pStats);
64 DWORD WINAPI GetTcpStatisticsEx(PMIB_TCPSTATS pStats, DWORD dwFamily);
66 DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS pStats);
68 DWORD WINAPI GetUdpStatisticsEx(PMIB_UDPSTATS pStats, DWORD dwFamily);
70 DWORD WINAPI SetIfEntry(PMIB_IFROW pIfRow);
72 DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute);
74 DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW pRoute);
76 DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute);
78 DWORD WINAPI SetIpStatistics(PMIB_IPSTATS pIpStats);
80 DWORD WINAPI SetIpTTL(UINT nTTL);
82 DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW pArpEntry);
84 DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW pArpEntry);
86 DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW pArpEntry);
88 DWORD WINAPI FlushIpNetTable(DWORD dwIfIndex);
90 DWORD WINAPI CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask,
91 DWORD dwIfIndex);
93 DWORD WINAPI DeleteProxyArpEntry(DWORD dwAddress, DWORD dwMask,
94 DWORD dwIfIndex);
96 DWORD WINAPI SetTcpEntry(PMIB_TCPROW pTcpRow);
98 DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen);
100 DWORD WINAPI GetUniDirectionalAdapterInfo(
101 PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen);
103 DWORD WINAPI GetBestInterface(IPAddr dwDestAddr, PDWORD pdwBestIfIndex);
105 #ifdef __WINE_WINSOCKAPI_STDLIB_H
106 DWORD WINAPI GetBestInterfaceEx(
107 #ifdef USE_WS_PREFIX
108 struct WS_sockaddr *pDestAddr,
109 #else
110 struct sockaddr *pDestAddr,
111 #endif
112 PDWORD pdwBestIfIndex);
113 #endif
115 DWORD WINAPI GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr,
116 PMIB_IPFORWARDROW pBestRoute);
118 DWORD WINAPI NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped);
120 DWORD WINAPI NotifyRouteChange(PHANDLE Handle, LPOVERLAPPED overlapped);
122 BOOL WINAPI CancelIPChangeNotify(LPOVERLAPPED overlapped);
124 DWORD WINAPI GetAdapterIndex(IN LPWSTR AdapterName, OUT PULONG IfIndex);
126 DWORD WINAPI AddIPAddress(IPAddr Address, IPMask IpMask, DWORD IfIndex,
127 PULONG NTEContext, PULONG NTEInstance);
129 DWORD WINAPI DeleteIPAddress(ULONG NTEContext);
131 DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen);
133 DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen);
135 DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex,
136 PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen);
138 DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo);
140 DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo);
142 DWORD WINAPI SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr,
143 PULONG PhyAddrLen);
145 BOOL WINAPI GetRTTAndHopCount(IPAddr DestIpAddress, PULONG HopCount,
146 ULONG MaxHops, PULONG RTT);
148 DWORD WINAPI GetFriendlyIfIndex(DWORD IfIndex);
150 DWORD WINAPI EnableRouter(HANDLE* pHandle, OVERLAPPED* pOverlapped);
152 DWORD WINAPI UnenableRouter(OVERLAPPED* pOverlapped, LPDWORD lpdwEnableCount);
154 #ifdef _WINSOCK2API_
155 ULONG WINAPI GetAdaptersAddresses(ULONG family, ULONG flags, PVOID reserved,
156 PIP_ADAPTER_ADDRESSES aa, PULONG buflen);
157 #endif
159 DWORD WINAPI AllocateAndGetUdpTableFromStack(PMIB_UDPTABLE *ppUdpTable, BOOL bOrder, HANDLE heap, DWORD flags);
160 DWORD WINAPI AllocateAndGetTcpTableFromStack(PMIB_TCPTABLE *ppTcpTable, BOOL bOrder, HANDLE heap, DWORD flags);
161 DWORD WINAPI AllocateAndGetIpNetTableFromStack(PMIB_IPNETTABLE *ppIpNetTable, BOOL bOrder, HANDLE heap, DWORD flags);
162 DWORD WINAPI AllocateAndGetIpForwardTableFromStack(PMIB_IPFORWARDTABLE *ppIpForwardTable, BOOL bOrder, HANDLE heap, DWORD flags);
164 #ifdef __cplusplus
166 #endif
168 #endif /* WINE_IPHLPAPI_H__ */