|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef _INC_TCPESTATS | 
|  | #define _INC_TCPESTATS | 
|  |  | 
|  | #if (_WIN32_WINNT >= 0x0600) | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | typedef struct _TCP_ESTATS_BANDWIDTH_ROD_v0 { | 
|  | ULONG64 OutboundBandwidth; | 
|  | ULONG64 InboundBandwidth; | 
|  | ULONG64 OutboundInstability; | 
|  | ULONG64 InboundInstability; | 
|  | BOOLEAN OutboundBandwidthPeaked; | 
|  | BOOLEAN InboundBandwidthPeaked; | 
|  | } TCP_ESTATS_BANDWIDTH_ROD_v0, *PTCP_ESTATS_BANDWIDTH_ROD_v0; | 
|  |  | 
|  | typedef enum _TCP_BOOLEAN_OPTIONAL { | 
|  | TcpBoolOptDisabled    = 0, | 
|  | TcpBoolOptEnabled     = 1, | 
|  | TcpBoolOptUnchanged   = -1 | 
|  | } TCP_BOOLEAN_OPTIONAL; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_BANDWIDTH_RW_v0 { | 
|  | TCP_BOOLEAN_OPTIONAL EnableCollectionOutbound; | 
|  | TCP_BOOLEAN_OPTIONAL EnableCollectionInbound; | 
|  | } TCP_ESTATS_BANDWIDTH_RW_v0, *PTCP_ESTATS_BANDWIDTH_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_DATA_ROD_v0 { | 
|  | ULONG64 DataBytesOut; | 
|  | ULONG64 DataSegsOut; | 
|  | ULONG64 DataBytesIn; | 
|  | ULONG64 DataSegsIn; | 
|  | ULONG64 SegsOut; | 
|  | ULONG64 SegsIn; | 
|  | ULONG   SoftErrors; | 
|  | ULONG   SoftErrorReason; | 
|  | ULONG   SndUna; | 
|  | ULONG   SndNxt; | 
|  | ULONG   SndMax; | 
|  | ULONG64 ThruBytesAcked; | 
|  | ULONG   RcvNxt; | 
|  | ULONG64 ThruBytesReceived; | 
|  | } TCP_ESTATS_DATA_ROD_v0, *PTCP_ESTATS_DATA_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_DATA_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_DATA_RW_v0, *PTCP_ESTATS_DATA_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_FINE_RTT_ROD_v0 { | 
|  | ULONG RttVar; | 
|  | ULONG MaxRtt; | 
|  | ULONG MinRtt; | 
|  | ULONG SumRtt; | 
|  | } TCP_ESTATS_FINE_RTT_ROD_v0, *PTCP_ESTATS_FINE_RTT_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_FINE_RTT_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_FINE_RTT_RW_v0, *PTCP_ESTATS_FINE_RTT_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_OBS_REC_ROD_v0 { | 
|  | ULONG CurRwinRcvd; | 
|  | ULONG MaxRwinRcvd; | 
|  | ULONG MinRwinRcvd; | 
|  | UCHAR WinScaleRcvd; | 
|  | } TCP_ESTATS_OBS_REC_ROD_v0, *PTCP_ESTATS_OBS_REC_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_OBS_REC_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_OBS_REC_RW_v0, *PTCP_ESTATS_OBS_REC_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_PATH_ROD_v0 { | 
|  | ULONG FastRetran; | 
|  | ULONG Timeouts; | 
|  | ULONG SubsequentTimeouts; | 
|  | ULONG CurTimeoutCount; | 
|  | ULONG AbruptTimeouts; | 
|  | ULONG PktsRetrans; | 
|  | ULONG BytesRetrans; | 
|  | ULONG DupAcksIn; | 
|  | ULONG SacksRcvd; | 
|  | ULONG SackBlocksRcvd; | 
|  | ULONG CongSignals; | 
|  | ULONG PreCongSumCwnd; | 
|  | ULONG PreCongSumRtt; | 
|  | ULONG PostCongSumRtt; | 
|  | ULONG PostCongCountRtt; | 
|  | ULONG EcnSignals; | 
|  | ULONG EceRcvd; | 
|  | ULONG SendStall; | 
|  | ULONG QuenchRcvd; | 
|  | ULONG RetranThresh; | 
|  | ULONG SndDupAckEpisodes; | 
|  | ULONG SumBytesReordered; | 
|  | ULONG NonRecovDa; | 
|  | ULONG NonRecovDaEpisodes; | 
|  | ULONG AckAfterFr; | 
|  | ULONG DsackDups; | 
|  | ULONG SampleRtt; | 
|  | ULONG SmoothedRtt; | 
|  | ULONG RttVar; | 
|  | ULONG MaxRtt; | 
|  | ULONG MinRtt; | 
|  | ULONG SumRtt; | 
|  | ULONG CountRtt; | 
|  | ULONG CurRto; | 
|  | ULONG MaxRto; | 
|  | ULONG MinRto; | 
|  | ULONG CurMss; | 
|  | ULONG MaxMss; | 
|  | ULONG MinMss; | 
|  | ULONG SpuriousRtoDetections; | 
|  | } TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_PATH_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_PATH_RW_v0, *PTCP_ESTATS_PATH_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_REC_ROD_v0 { | 
|  | ULONG  CurRwinSent; | 
|  | ULONG  MaxRwinSent; | 
|  | ULONG  MinRwinSent; | 
|  | ULONG  LimRwin; | 
|  | ULONG  DupAckEpisodes; | 
|  | ULONG  DupAcksOut; | 
|  | ULONG  CeRcvd; | 
|  | ULONG  EcnSent; | 
|  | ULONG  EcnNoncesRcvd; | 
|  | ULONG  CurReasmQueue; | 
|  | ULONG  MaxReasmQueue; | 
|  | SIZE_T CurAppRQueue; | 
|  | SIZE_T MaxAppRQueue; | 
|  | UCHAR  WinScaleSent; | 
|  | } TCP_ESTATS_REC_ROD_v0, *PTCP_ESTATS_REC_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_REC_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_REC_RW_v0, *PTCP_ESTATS_REC_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_SEND_BUFF_ROD_v0 { | 
|  | SIZE_T CurRetxQueue; | 
|  | SIZE_T MaxRetxQueue; | 
|  | SIZE_T CurAppWQueue; | 
|  | SIZE_T MaxAppWQueue; | 
|  | } TCP_ESTATS_SEND_BUFF_ROD_v0, *PTCP_ESTATS_SEND_BUFF_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_SEND_BUFF_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_SEND_BUFF_RW_v0, *PTCP_ESTATS_SEND_BUFF_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_SND_CONG_ROD_v0 { | 
|  | ULONG  SndLimTransRwin; | 
|  | ULONG  SndLimTimeRwin; | 
|  | SIZE_T SndLimBytesRwin; | 
|  | ULONG  SndLimTransCwnd; | 
|  | ULONG  SndLimTimeCwnd; | 
|  | SIZE_T SndLimBytesCwnd; | 
|  | ULONG  SndLimTransSnd; | 
|  | ULONG  SndLimTimeSnd; | 
|  | SIZE_T SndLimBytesSnd; | 
|  | ULONG  SlowStart; | 
|  | ULONG  CongAvoid; | 
|  | ULONG  OtherReductions; | 
|  | ULONG  CurCwnd; | 
|  | ULONG  MaxSsCwnd; | 
|  | ULONG  MaxCaCwnd; | 
|  | ULONG  CurSsthresh; | 
|  | ULONG  MaxSsthresh; | 
|  | ULONG  MinSsthresh; | 
|  | } TCP_ESTATS_SND_CONG_ROD_v0, *PTCP_ESTATS_SND_CONG_ROD_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_SND_CONG_ROS_v0 { | 
|  | ULONG LimCwnd; | 
|  | } TCP_ESTATS_SND_CONG_ROS_v0, *PTCP_ESTATS_SND_CONG_ROS_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_SND_CONG_RW_v0 { | 
|  | BOOLEAN EnableCollection; | 
|  | } TCP_ESTATS_SND_CONG_RW_v0, *PTCP_ESTATS_SND_CONG_RW_v0; | 
|  |  | 
|  | typedef struct _TCP_ESTATS_SYN_OPTS_ROS_v0 { | 
|  | BOOLEAN ActiveOpen; | 
|  | ULONG   MssRcvd; | 
|  | ULONG   MssSent; | 
|  | } TCP_ESTATS_SYN_OPTS_ROS_v0, *PTCP_ESTATS_SYN_OPTS_ROS_v0; | 
|  |  | 
|  | typedef enum _TCP_ESTATS_TYPE { | 
|  | TcpConnectionEstatsSynOpts, | 
|  | TcpConnectionEstatsData, | 
|  | TcpConnectionEstatsSndCong, | 
|  | TcpConnectionEstatsPath, | 
|  | TcpConnectionEstatsSendBuff, | 
|  | TcpConnectionEstatsRec, | 
|  | TcpConnectionEstatsObsRec, | 
|  | TcpConnectionEstatsBandwidth, | 
|  | TcpConnectionEstatsFineRtt, | 
|  | TcpConnectionEstatsMaximum | 
|  | } TCP_ESTATS_TYPE; | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /*(_WIN32_WINNT >= 0x0600)*/ | 
|  |  | 
|  | #endif /*_INC_TCPESTATS*/ | 
|  |  |