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 16 extern "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. */ 22 typedef int MIB_TCP_STATE; 23 24 typedef 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 32 typedef 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 42 typedef struct _MIB_TCP6TABLE { 43 DWORD dwNumEntries; 44 MIB_TCP6ROW table[ANY_SIZE]; 45 } MIB_TCP6TABLE, *PMIB_TCP6TABLE; 46 47 typedef 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 59 typedef struct _MIB_TCP6TABLE2 { 60 DWORD dwNumEntries; 61 MIB_TCP6ROW2 table[ANY_SIZE]; 62 } MIB_TCP6TABLE2, *PMIB_TCP6TABLE2; 63 64 typedef struct _MIB_TCPROW2 { 65 DWORD dwState; 66 DWORD dwLocalAddr; 67 DWORD dwLocalPort; 68 DWORD dwRemoteAddr; 69 DWORD dwRemotePort; 70 TCP_CONNECTION_OFFLOAD_STATE dwOffloadState; 71 } MIB_TCPROW2, *PMIB_TCPROW2; 72 73 typedef struct _MIB_TCPTABLE2 { 74 DWORD dwNumEntries; 75 MIB_TCPROW2 table[ANY_SIZE]; 76 } MIB_TCPTABLE2, *PMIB_TCPTABLE2; 77 78 #ifdef __cplusplus 79 } 80 #endif 81 82 #endif /*(_WIN32_WINNT >= 0x0600)*/ 83 84 #endif /*_INC_TCPMIB*/ 85