master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6#ifndef _INC_TCPMIB
 7#define _INC_TCPMIB
 8
 9#ifndef ANY_SIZE
10#define ANY_SIZE 1
11#endif
12
13#if (_WIN32_WINNT >= 0x0600)
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19/* As I read msdn on Vista the defines above were moved into
20   typedef enum { MIB_..., } MIB_TCP_STATE;
21   We simply typedef it to int.  */
22typedef int MIB_TCP_STATE;
23
24typedef enum _TCP_CONNECTION_OFFLOAD_STATE {
25  TcpConnectionOffloadStateInHost       = 0,
26  TcpConnectionOffloadStateOffloading   = 1,
27  TcpConnectionOffloadStateOffloaded    = 2,
28  TcpConnectionOffloadStateUploading    = 3,
29  TcpConnectionOffloadStateMax          = 4 
30} TCP_CONNECTION_OFFLOAD_STATE;
31
32typedef struct _MIB_TCP6ROW {
33  MIB_TCP_STATE State;
34  IN6_ADDR      LocalAddr;
35  DWORD         dwLocalScopeId;
36  DWORD         dwLocalPort;
37  IN6_ADDR      RemoteAddr;
38  DWORD         dwRemoteScopeId;
39  DWORD         dwRemotePort;
40} MIB_TCP6ROW, *PMIB_TCP6ROW;
41
42typedef struct _MIB_TCP6TABLE {
43  DWORD       dwNumEntries;
44  MIB_TCP6ROW table[ANY_SIZE];
45} MIB_TCP6TABLE, *PMIB_TCP6TABLE;
46
47typedef struct _MIB_TCP6ROW2 {
48  IN6_ADDR                     LocalAddr;
49  DWORD                        dwLocalScopeId;
50  DWORD                        dwLocalPort;
51  IN6_ADDR                     RemoteAddr;
52  DWORD                        dwRemoteScopeId;
53  DWORD                        dwRemotePort;
54  MIB_TCP_STATE                State;
55  DWORD                        dwOwningPid;
56  TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
57} MIB_TCP6ROW2, *PMIB_TCP6ROW2;
58
59typedef struct _MIB_TCP6TABLE2 {
60  DWORD        dwNumEntries;
61  MIB_TCP6ROW2 table[ANY_SIZE];
62} MIB_TCP6TABLE2, *PMIB_TCP6TABLE2;
63
64typedef struct _MIB_TCPROW2 {
65  DWORD                        dwState;
66  DWORD                        dwLocalAddr;
67  DWORD                        dwLocalPort;
68  DWORD                        dwRemoteAddr;
69  DWORD                        dwRemotePort;
70  DWORD                        dwOwningPid;
71  TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
72} MIB_TCPROW2, *PMIB_TCPROW2;
73
74typedef struct _MIB_TCPTABLE2 {
75  DWORD       dwNumEntries;
76  MIB_TCPROW2 table[ANY_SIZE];
77} MIB_TCPTABLE2, *PMIB_TCPTABLE2;
78
79#ifdef __cplusplus
80}
81#endif
82
83#endif /*(_WIN32_WINNT >= 0x0600)*/
84
85#endif /*_INC_TCPMIB*/