msvcp100: Add arm exports.
[wine] / include / tcpmib.h
1 /*
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_TCPMIB_H
19 #define __WINE_TCPMIB_H
20
21 #define TCPIP_OWNING_MODULE_SIZE 16
22
23
24 /* TCP tables */
25
26 typedef enum
27 {
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;
41
42 typedef enum
43 {
44     TcpConnectionOffloadStateInHost,
45     TcpConnectionOffloadStateOffloading,
46     TcpConnectionOffloadStateOffloaded,
47     TcpConnectionOffloadStateUploading,
48     TcpConnectionOffloadStateMax,
49 } TCP_CONNECTION_OFFLOAD_STATE, *PTCP_CONNECTION_OFFLOAD_STATE;
50
51 typedef struct _MIB_TCPROW
52 {
53     union
54     {
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;
63
64 typedef struct _MIB_TCPTABLE
65 {
66     DWORD      dwNumEntries;
67     MIB_TCPROW table[1];
68 } MIB_TCPTABLE, *PMIB_TCPTABLE;
69
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;
79
80 typedef struct _MIB_TCP6TABLE {
81     DWORD dwNumEntries;
82     MIB_TCP6ROW table[1];
83 } MIB_TCP6TABLE, *PMIB_TCP6TABLE;
84
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;
96
97 typedef struct _MIB_TCP6TABLE2 {
98     DWORD dwNumEntries;
99     MIB_TCP6ROW2 table[1];
100 } MIB_TCP6TABLE2, *PMIB_TCP6TABLE2;
101
102 typedef struct _MIB_TCPROW_OWNER_PID
103 {
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;
111
112 typedef struct _MIB_TCPTABLE_OWNER_PID
113 {
114     DWORD                dwNumEntries;
115     MIB_TCPROW_OWNER_PID table[1];
116 } MIB_TCPTABLE_OWNER_PID, *PMIB_TCPTABLE_OWNER_PID;
117
118 typedef struct _MIB_TCPROW2
119 {
120     DWORD dwState;
121     DWORD dwLocalAddr;
122     DWORD dwLocalPort;
123     DWORD dwRemoteAddr;
124     DWORD dwRemotePort;
125     DWORD dwOwningPid;
126     TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
127 } MIB_TCPROW2, *PMIB_TCPROW2;
128
129 typedef struct _MIB_TCPTABLE2
130 {
131     DWORD       dwNumEntries;
132     MIB_TCPROW2 table[1];
133 } MIB_TCPTABLE2, *PMIB_TCPTABLE2;
134
135
136 /* TCP stats */
137
138 typedef enum
139 {
140     TcpRtoAlgorithmOther = 0,
141     TcpRtoAlgorithmConstant = 1,
142     TcpRtoAlgorithmRsre = 2,
143     TcpRtoAlgorithmVanj = 3,
144
145     MIB_TCP_RTO_OTHER = 1,
146     MIB_TCP_RTO_CONSTANT = 2,
147     MIB_TCP_RTO_RSRE = 3,
148     MIB_TCP_RTO_VANJ = 4,
149 } TCP_RTO_ALGORITHM, *PTCP_RTO_ALGORITHM;
150
151 typedef struct _MIB_TCPSTATS
152 {
153     union
154     {
155         DWORD             dwRtoAlgorithm;
156         TCP_RTO_ALGORITHM RtoAlgorithm;
157     } DUMMYUNIONNAME;
158     DWORD dwRtoMin;
159     DWORD dwRtoMax;
160     DWORD dwMaxConn;
161     DWORD dwActiveOpens;
162     DWORD dwPassiveOpens;
163     DWORD dwAttemptFails;
164     DWORD dwEstabResets;
165     DWORD dwCurrEstab;
166     DWORD dwInSegs;
167     DWORD dwOutSegs;
168     DWORD dwRetransSegs;
169     DWORD dwInErrs;
170     DWORD dwOutRsts;
171     DWORD dwNumConns;
172 } MIB_TCPSTATS, *PMIB_TCPSTATS;
173
174 #endif /* __WINE_TCPMIB_H */