| /** |
| * 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*/ |
| |