user32/tests: Link directly to imm32.
[wine.git] / include / tcpmib.h
blob6576f8afa5a53b490e8a13e6b6fb9483932f2037
1 /*
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_TCPMIB_H
19 #define __WINE_TCPMIB_H
21 #define TCPIP_OWNING_MODULE_SIZE 16
24 /* TCP tables */
26 typedef enum
28 MIB_TCP_STATE_CLOSED = 1,
29 MIB_TCP_STATE_LISTEN = 2,
30 MIB_TCP_STATE_SYN_SENT = 3,
31 MIB_TCP_STATE_SYN_RCVD = 4,
32 MIB_TCP_STATE_ESTAB = 5,
33 MIB_TCP_STATE_FIN_WAIT1 = 6,
34 MIB_TCP_STATE_FIN_WAIT2 = 7,
35 MIB_TCP_STATE_CLOSE_WAIT = 8,
36 MIB_TCP_STATE_CLOSING = 9,
37 MIB_TCP_STATE_LAST_ACK = 10,
38 MIB_TCP_STATE_TIME_WAIT = 11,
39 MIB_TCP_STATE_DELETE_TCB = 12,
40 } MIB_TCP_STATE;
42 typedef enum
44 TcpConnectionOffloadStateInHost,
45 TcpConnectionOffloadStateOffloading,
46 TcpConnectionOffloadStateOffloaded,
47 TcpConnectionOffloadStateUploading,
48 TcpConnectionOffloadStateMax,
49 } TCP_CONNECTION_OFFLOAD_STATE, *PTCP_CONNECTION_OFFLOAD_STATE;
51 typedef struct _MIB_TCPROW
53 union
55 DWORD dwState;
56 MIB_TCP_STATE State;
57 } DUMMYUNIONNAME;
58 DWORD dwLocalAddr;
59 DWORD dwLocalPort;
60 DWORD dwRemoteAddr;
61 DWORD dwRemotePort;
62 } MIB_TCPROW, *PMIB_TCPROW;
64 typedef struct _MIB_TCPTABLE
66 DWORD dwNumEntries;
67 MIB_TCPROW table[1];
68 } MIB_TCPTABLE, *PMIB_TCPTABLE;
70 typedef struct _MIB_TCP6ROW {
71 MIB_TCP_STATE State;
72 IN6_ADDR LocalAddr;
73 DWORD dwLocalScopeId;
74 DWORD dwLocalPort;
75 IN6_ADDR RemoteAddr;
76 DWORD dwRemoteScopeId;
77 DWORD dwRemotePort;
78 } MIB_TCP6ROW, *PMIB_TCP6ROW;
80 typedef struct _MIB_TCP6TABLE {
81 DWORD dwNumEntries;
82 MIB_TCP6ROW table[1];
83 } MIB_TCP6TABLE, *PMIB_TCP6TABLE;
85 typedef struct _MIB_TCP6ROW2 {
86 IN6_ADDR LocalAddr;
87 DWORD dwLocalScopeId;
88 DWORD dwLocalPort;
89 IN6_ADDR RemoteAddr;
90 DWORD dwRemoteScopeId;
91 DWORD dwRemotePort;
92 MIB_TCP_STATE State;
93 DWORD dwOwningPid;
94 TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
95 } MIB_TCP6ROW2, *PMIB_TCP6ROW2;
97 typedef struct _MIB_TCP6TABLE2 {
98 DWORD dwNumEntries;
99 MIB_TCP6ROW2 table[1];
100 } MIB_TCP6TABLE2, *PMIB_TCP6TABLE2;
102 typedef struct _MIB_TCPROW_OWNER_PID
104 DWORD dwState;
105 DWORD dwLocalAddr;
106 DWORD dwLocalPort;
107 DWORD dwRemoteAddr;
108 DWORD dwRemotePort;
109 DWORD dwOwningPid;
110 } MIB_TCPROW_OWNER_PID, *PMIB_TCPROW_OWNER_PID;
112 typedef struct _MIB_TCPTABLE_OWNER_PID
114 DWORD dwNumEntries;
115 MIB_TCPROW_OWNER_PID table[1];
116 } MIB_TCPTABLE_OWNER_PID, *PMIB_TCPTABLE_OWNER_PID;
118 typedef struct _MIB_TCP6ROW_OWNER_PID
120 UCHAR ucLocalAddr[16];
121 DWORD dwLocalScopeId;
122 DWORD dwLocalPort;
123 UCHAR ucRemoteAddr[16];
124 DWORD dwRemoteScopeId;
125 DWORD dwRemotePort;
126 DWORD dwState;
127 DWORD dwOwningPid;
128 } MIB_TCP6ROW_OWNER_PID, *PMIB_TCP6ROW_OWNER_PID;
130 typedef struct _MIB_TCP6TABLE_OWNER_PID
132 DWORD dwNumEntries;
133 MIB_TCP6ROW_OWNER_PID table[1];
134 } MIB_TCP6TABLE_OWNER_PID, *PMIB_TCP6TABLE_OWNER_PID;
136 typedef struct _MIB_TCPROW_OWNER_MODULE
138 DWORD dwState;
139 DWORD dwLocalAddr;
140 DWORD dwLocalPort;
141 DWORD dwRemoteAddr;
142 DWORD dwRemotePort;
143 DWORD dwOwningPid;
144 LARGE_INTEGER liCreateTimestamp;
145 ULONGLONG OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
146 } MIB_TCPROW_OWNER_MODULE, *PMIB_TCPROW_OWNER_MODULE;
148 typedef struct _MIB_TCPTABLE_OWNER_MODULE
150 DWORD dwNumEntries;
151 MIB_TCPROW_OWNER_MODULE table[1];
152 } MIB_TCPTABLE_OWNER_MODULE, *PMIB_TCPTABLE_OWNER_MODULE;
154 typedef struct _MIB_TCP6ROW_OWNER_MODULE
156 UCHAR ucLocalAddr[16];
157 DWORD dwLocalScopeId;
158 DWORD dwLocalPort;
159 UCHAR ucRemoteAddr[16];
160 DWORD dwRemoteScopeId;
161 DWORD dwRemotePort;
162 DWORD dwState;
163 DWORD dwOwningPid;
164 LARGE_INTEGER liCreateTimestamp;
165 ULONGLONG OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
166 } MIB_TCP6ROW_OWNER_MODULE, *PMIB_TCP6ROW_OWNER_MODULE;
168 typedef struct _MIB_TCP6TABLE_OWNER_MODULE
170 DWORD dwNumEntries;
171 MIB_TCP6ROW_OWNER_MODULE table[1];
172 } MIB_TCP6TABLE_OWNER_MODULE, *PMIB_TCP6TABLE_OWNER_MODULE;
174 typedef struct _MIB_TCPROW2
176 DWORD dwState;
177 DWORD dwLocalAddr;
178 DWORD dwLocalPort;
179 DWORD dwRemoteAddr;
180 DWORD dwRemotePort;
181 DWORD dwOwningPid;
182 TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
183 } MIB_TCPROW2, *PMIB_TCPROW2;
185 typedef struct _MIB_TCPTABLE2
187 DWORD dwNumEntries;
188 MIB_TCPROW2 table[1];
189 } MIB_TCPTABLE2, *PMIB_TCPTABLE2;
192 /* TCP stats */
194 typedef enum
196 TcpRtoAlgorithmOther = 0,
197 TcpRtoAlgorithmConstant = 1,
198 TcpRtoAlgorithmRsre = 2,
199 TcpRtoAlgorithmVanj = 3,
201 MIB_TCP_RTO_OTHER = 1,
202 MIB_TCP_RTO_CONSTANT = 2,
203 MIB_TCP_RTO_RSRE = 3,
204 MIB_TCP_RTO_VANJ = 4,
205 } TCP_RTO_ALGORITHM, *PTCP_RTO_ALGORITHM;
207 typedef struct _MIB_TCPSTATS
209 union
211 DWORD dwRtoAlgorithm;
212 TCP_RTO_ALGORITHM RtoAlgorithm;
213 } DUMMYUNIONNAME;
214 DWORD dwRtoMin;
215 DWORD dwRtoMax;
216 DWORD dwMaxConn;
217 DWORD dwActiveOpens;
218 DWORD dwPassiveOpens;
219 DWORD dwAttemptFails;
220 DWORD dwEstabResets;
221 DWORD dwCurrEstab;
222 DWORD dwInSegs;
223 DWORD dwOutSegs;
224 DWORD dwRetransSegs;
225 DWORD dwInErrs;
226 DWORD dwOutRsts;
227 DWORD dwNumConns;
228 } MIB_TCPSTATS, *PMIB_TCPSTATS;
230 #endif /* __WINE_TCPMIB_H */