| 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_TCPESTATS | 
 
 
 
 
 | 7 | #define _INC_TCPESTATS | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #if (_WIN32_WINNT >= 0x0600) | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | #ifdef __cplusplus | 
 
 
 
 
 | 12 | extern "C" { | 
 
 
 
 
 | 13 | #endif | 
 
 
 
 
 | 14 |  | 
 
 
 
 
 | 15 | typedef struct _TCP_ESTATS_BANDWIDTH_ROD_v0 { | 
 
 
 
 
 | 16 | ULONG64 OutboundBandwidth; | 
 
 
 
 
 | 17 | ULONG64 InboundBandwidth; | 
 
 
 
 
 | 18 | ULONG64 OutboundInstability; | 
 
 
 
 
 | 19 | ULONG64 InboundInstability; | 
 
 
 
 
 | 20 | BOOLEAN OutboundBandwidthPeaked; | 
 
 
 
 
 | 21 | BOOLEAN InboundBandwidthPeaked; | 
 
 
 
 
 | 22 | } TCP_ESTATS_BANDWIDTH_ROD_v0, *PTCP_ESTATS_BANDWIDTH_ROD_v0; | 
 
 
 
 
 | 23 |  | 
 
 
 
 
 | 24 | typedef enum _TCP_BOOLEAN_OPTIONAL { | 
 
 
 
 
 | 25 | TcpBoolOptDisabled    = 0, | 
 
 
 
 
 | 26 | TcpBoolOptEnabled     = 1, | 
 
 
 
 
 | 27 | TcpBoolOptUnchanged   = -1 | 
 
 
 
 
 | 28 | } TCP_BOOLEAN_OPTIONAL; | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | typedef struct _TCP_ESTATS_BANDWIDTH_RW_v0 { | 
 
 
 
 
 | 31 | TCP_BOOLEAN_OPTIONAL EnableCollectionOutbound; | 
 
 
 
 
 | 32 | TCP_BOOLEAN_OPTIONAL EnableCollectionInbound; | 
 
 
 
 
 | 33 | } TCP_ESTATS_BANDWIDTH_RW_v0, *PTCP_ESTATS_BANDWIDTH_RW_v0; | 
 
 
 
 
 | 34 |  | 
 
 
 
 
 | 35 | typedef struct _TCP_ESTATS_DATA_ROD_v0 { | 
 
 
 
 
 | 36 | ULONG64 DataBytesOut; | 
 
 
 
 
 | 37 | ULONG64 DataSegsOut; | 
 
 
 
 
 | 38 | ULONG64 DataBytesIn; | 
 
 
 
 
 | 39 | ULONG64 DataSegsIn; | 
 
 
 
 
 | 40 | ULONG64 SegsOut; | 
 
 
 
 
 | 41 | ULONG64 SegsIn; | 
 
 
 
 
 | 42 | ULONG   SoftErrors; | 
 
 
 
 
 | 43 | ULONG   SoftErrorReason; | 
 
 
 
 
 | 44 | ULONG   SndUna; | 
 
 
 
 
 | 45 | ULONG   SndNxt; | 
 
 
 
 
 | 46 | ULONG   SndMax; | 
 
 
 
 
 | 47 | ULONG64 ThruBytesAcked; | 
 
 
 
 
 | 48 | ULONG   RcvNxt; | 
 
 
 
 
 | 49 | ULONG64 ThruBytesReceived; | 
 
 
 
 
 | 50 | } TCP_ESTATS_DATA_ROD_v0, *PTCP_ESTATS_DATA_ROD_v0; | 
 
 
 
 
 | 51 |  | 
 
 
 
 
 | 52 | typedef struct _TCP_ESTATS_DATA_RW_v0 { | 
 
 
 
 
 | 53 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 54 | } TCP_ESTATS_DATA_RW_v0, *PTCP_ESTATS_DATA_RW_v0; | 
 
 
 
 
 | 55 |  | 
 
 
 
 
 | 56 | typedef struct _TCP_ESTATS_FINE_RTT_ROD_v0 { | 
 
 
 
 
 | 57 | ULONG RttVar; | 
 
 
 
 
 | 58 | ULONG MaxRtt; | 
 
 
 
 
 | 59 | ULONG MinRtt; | 
 
 
 
 
 | 60 | ULONG SumRtt; | 
 
 
 
 
 | 61 | } TCP_ESTATS_FINE_RTT_ROD_v0, *PTCP_ESTATS_FINE_RTT_ROD_v0; | 
 
 
 
 
 | 62 |  | 
 
 
 
 
 | 63 | typedef struct _TCP_ESTATS_FINE_RTT_RW_v0 { | 
 
 
 
 
 | 64 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 65 | } TCP_ESTATS_FINE_RTT_RW_v0, *PTCP_ESTATS_FINE_RTT_RW_v0; | 
 
 
 
 
 | 66 |  | 
 
 
 
 
 | 67 | typedef struct _TCP_ESTATS_OBS_REC_ROD_v0 { | 
 
 
 
 
 | 68 | ULONG CurRwinRcvd; | 
 
 
 
 
 | 69 | ULONG MaxRwinRcvd; | 
 
 
 
 
 | 70 | ULONG MinRwinRcvd; | 
 
 
 
 
 | 71 | UCHAR WinScaleRcvd; | 
 
 
 
 
 | 72 | } TCP_ESTATS_OBS_REC_ROD_v0, *PTCP_ESTATS_OBS_REC_ROD_v0; | 
 
 
 
 
 | 73 |  | 
 
 
 
 
 | 74 | typedef struct _TCP_ESTATS_OBS_REC_RW_v0 { | 
 
 
 
 
 | 75 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 76 | } TCP_ESTATS_OBS_REC_RW_v0, *PTCP_ESTATS_OBS_REC_RW_v0; | 
 
 
 
 
 | 77 |  | 
 
 
 
 
 | 78 | typedef struct _TCP_ESTATS_PATH_ROD_v0 { | 
 
 
 
 
 | 79 | ULONG FastRetran; | 
 
 
 
 
 | 80 | ULONG Timeouts; | 
 
 
 
 
 | 81 | ULONG SubsequentTimeouts; | 
 
 
 
 
 | 82 | ULONG CurTimeoutCount; | 
 
 
 
 
 | 83 | ULONG AbruptTimeouts; | 
 
 
 
 
 | 84 | ULONG PktsRetrans; | 
 
 
 
 
 | 85 | ULONG BytesRetrans; | 
 
 
 
 
 | 86 | ULONG DupAcksIn; | 
 
 
 
 
 | 87 | ULONG SacksRcvd; | 
 
 
 
 
 | 88 | ULONG SackBlocksRcvd; | 
 
 
 
 
 | 89 | ULONG CongSignals; | 
 
 
 
 
 | 90 | ULONG PreCongSumCwnd; | 
 
 
 
 
 | 91 | ULONG PreCongSumRtt; | 
 
 
 
 
 | 92 | ULONG PostCongSumRtt; | 
 
 
 
 
 | 93 | ULONG PostCongCountRtt; | 
 
 
 
 
 | 94 | ULONG EcnSignals; | 
 
 
 
 
 | 95 | ULONG EceRcvd; | 
 
 
 
 
 | 96 | ULONG SendStall; | 
 
 
 
 
 | 97 | ULONG QuenchRcvd; | 
 
 
 
 
 | 98 | ULONG RetranThresh; | 
 
 
 
 
 | 99 | ULONG SndDupAckEpisodes; | 
 
 
 
 
 | 100 | ULONG SumBytesReordered; | 
 
 
 
 
 | 101 | ULONG NonRecovDa; | 
 
 
 
 
 | 102 | ULONG NonRecovDaEpisodes; | 
 
 
 
 
 | 103 | ULONG AckAfterFr; | 
 
 
 
 
 | 104 | ULONG DsackDups; | 
 
 
 
 
 | 105 | ULONG SampleRtt; | 
 
 
 
 
 | 106 | ULONG SmoothedRtt; | 
 
 
 
 
 | 107 | ULONG RttVar; | 
 
 
 
 
 | 108 | ULONG MaxRtt; | 
 
 
 
 
 | 109 | ULONG MinRtt; | 
 
 
 
 
 | 110 | ULONG SumRtt; | 
 
 
 
 
 | 111 | ULONG CountRtt; | 
 
 
 
 
 | 112 | ULONG CurRto; | 
 
 
 
 
 | 113 | ULONG MaxRto; | 
 
 
 
 
 | 114 | ULONG MinRto; | 
 
 
 
 
 | 115 | ULONG CurMss; | 
 
 
 
 
 | 116 | ULONG MaxMss; | 
 
 
 
 
 | 117 | ULONG MinMss; | 
 
 
 
 
 | 118 | ULONG SpuriousRtoDetections; | 
 
 
 
 
 | 119 | } TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0; | 
 
 
 
 
 | 120 |  | 
 
 
 
 
 | 121 | typedef struct _TCP_ESTATS_PATH_RW_v0 { | 
 
 
 
 
 | 122 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 123 | } TCP_ESTATS_PATH_RW_v0, *PTCP_ESTATS_PATH_RW_v0; | 
 
 
 
 
 | 124 |  | 
 
 
 
 
 | 125 | typedef struct _TCP_ESTATS_REC_ROD_v0 { | 
 
 
 
 
 | 126 | ULONG  CurRwinSent; | 
 
 
 
 
 | 127 | ULONG  MaxRwinSent; | 
 
 
 
 
 | 128 | ULONG  MinRwinSent; | 
 
 
 
 
 | 129 | ULONG  LimRwin; | 
 
 
 
 
 | 130 | ULONG  DupAckEpisodes; | 
 
 
 
 
 | 131 | ULONG  DupAcksOut; | 
 
 
 
 
 | 132 | ULONG  CeRcvd; | 
 
 
 
 
 | 133 | ULONG  EcnSent; | 
 
 
 
 
 | 134 | ULONG  EcnNoncesRcvd; | 
 
 
 
 
 | 135 | ULONG  CurReasmQueue; | 
 
 
 
 
 | 136 | ULONG  MaxReasmQueue; | 
 
 
 
 
 | 137 | SIZE_T CurAppRQueue; | 
 
 
 
 
 | 138 | SIZE_T MaxAppRQueue; | 
 
 
 
 
 | 139 | UCHAR  WinScaleSent; | 
 
 
 
 
 | 140 | } TCP_ESTATS_REC_ROD_v0, *PTCP_ESTATS_REC_ROD_v0; | 
 
 
 
 
 | 141 |  | 
 
 
 
 
 | 142 | typedef struct _TCP_ESTATS_REC_RW_v0 { | 
 
 
 
 
 | 143 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 144 | } TCP_ESTATS_REC_RW_v0, *PTCP_ESTATS_REC_RW_v0; | 
 
 
 
 
 | 145 |  | 
 
 
 
 
 | 146 | typedef struct _TCP_ESTATS_SEND_BUFF_ROD_v0 { | 
 
 
 
 
 | 147 | SIZE_T CurRetxQueue; | 
 
 
 
 
 | 148 | SIZE_T MaxRetxQueue; | 
 
 
 
 
 | 149 | SIZE_T CurAppWQueue; | 
 
 
 
 
 | 150 | SIZE_T MaxAppWQueue; | 
 
 
 
 
 | 151 | } TCP_ESTATS_SEND_BUFF_ROD_v0, *PTCP_ESTATS_SEND_BUFF_ROD_v0; | 
 
 
 
 
 | 152 |  | 
 
 
 
 
 | 153 | typedef struct _TCP_ESTATS_SEND_BUFF_RW_v0 { | 
 
 
 
 
 | 154 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 155 | } TCP_ESTATS_SEND_BUFF_RW_v0, *PTCP_ESTATS_SEND_BUFF_RW_v0; | 
 
 
 
 
 | 156 |  | 
 
 
 
 
 | 157 | typedef struct _TCP_ESTATS_SND_CONG_ROD_v0 { | 
 
 
 
 
 | 158 | ULONG  SndLimTransRwin; | 
 
 
 
 
 | 159 | ULONG  SndLimTimeRwin; | 
 
 
 
 
 | 160 | SIZE_T SndLimBytesRwin; | 
 
 
 
 
 | 161 | ULONG  SndLimTransCwnd; | 
 
 
 
 
 | 162 | ULONG  SndLimTimeCwnd; | 
 
 
 
 
 | 163 | SIZE_T SndLimBytesCwnd; | 
 
 
 
 
 | 164 | ULONG  SndLimTransSnd; | 
 
 
 
 
 | 165 | ULONG  SndLimTimeSnd; | 
 
 
 
 
 | 166 | SIZE_T SndLimBytesSnd; | 
 
 
 
 
 | 167 | ULONG  SlowStart; | 
 
 
 
 
 | 168 | ULONG  CongAvoid; | 
 
 
 
 
 | 169 | ULONG  OtherReductions; | 
 
 
 
 
 | 170 | ULONG  CurCwnd; | 
 
 
 
 
 | 171 | ULONG  MaxSsCwnd; | 
 
 
 
 
 | 172 | ULONG  MaxCaCwnd; | 
 
 
 
 
 | 173 | ULONG  CurSsthresh; | 
 
 
 
 
 | 174 | ULONG  MaxSsthresh; | 
 
 
 
 
 | 175 | ULONG  MinSsthresh; | 
 
 
 
 
 | 176 | } TCP_ESTATS_SND_CONG_ROD_v0, *PTCP_ESTATS_SND_CONG_ROD_v0; | 
 
 
 
 
 | 177 |  | 
 
 
 
 
 | 178 | typedef struct _TCP_ESTATS_SND_CONG_ROS_v0 { | 
 
 
 
 
 | 179 | ULONG LimCwnd; | 
 
 
 
 
 | 180 | } TCP_ESTATS_SND_CONG_ROS_v0, *PTCP_ESTATS_SND_CONG_ROS_v0; | 
 
 
 
 
 | 181 |  | 
 
 
 
 
 | 182 | typedef struct _TCP_ESTATS_SND_CONG_RW_v0 { | 
 
 
 
 
 | 183 | BOOLEAN EnableCollection; | 
 
 
 
 
 | 184 | } TCP_ESTATS_SND_CONG_RW_v0, *PTCP_ESTATS_SND_CONG_RW_v0; | 
 
 
 
 
 | 185 |  | 
 
 
 
 
 | 186 | typedef struct _TCP_ESTATS_SYN_OPTS_ROS_v0 { | 
 
 
 
 
 | 187 | BOOLEAN ActiveOpen; | 
 
 
 
 
 | 188 | ULONG   MssRcvd; | 
 
 
 
 
 | 189 | ULONG   MssSent; | 
 
 
 
 
 | 190 | } TCP_ESTATS_SYN_OPTS_ROS_v0, *PTCP_ESTATS_SYN_OPTS_ROS_v0; | 
 
 
 
 
 | 191 |  | 
 
 
 
 
 | 192 | typedef enum _TCP_ESTATS_TYPE { | 
 
 
 
 
 | 193 | TcpConnectionEstatsSynOpts, | 
 
 
 
 
 | 194 | TcpConnectionEstatsData, | 
 
 
 
 
 | 195 | TcpConnectionEstatsSndCong, | 
 
 
 
 
 | 196 | TcpConnectionEstatsPath, | 
 
 
 
 
 | 197 | TcpConnectionEstatsSendBuff, | 
 
 
 
 
 | 198 | TcpConnectionEstatsRec, | 
 
 
 
 
 | 199 | TcpConnectionEstatsObsRec, | 
 
 
 
 
 | 200 | TcpConnectionEstatsBandwidth, | 
 
 
 
 
 | 201 | TcpConnectionEstatsFineRtt, | 
 
 
 
 
 | 202 | TcpConnectionEstatsMaximum | 
 
 
 
 
 | 203 | } TCP_ESTATS_TYPE; | 
 
 
 
 
 | 204 |  | 
 
 
 
 
 | 205 | #ifdef __cplusplus | 
 
 
 
 
 | 206 | } | 
 
 
 
 
 | 207 | #endif | 
 
 
 
 
 | 208 |  | 
 
 
 
 
 | 209 | #endif /*(_WIN32_WINNT >= 0x0600)*/ | 
 
 
 
 
 | 210 |  | 
 
 
 
 
 | 211 | #endif /*_INC_TCPESTATS*/ | 
 
 
 
 
 | 212 |  |