ホーム › NetworkManagement.IpHelper › TCP_ESTATS_PATH_ROD_v0
TCP_ESTATS_PATH_ROD_v0
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| FastRetran | DWORD | 4 | +0 | +0 | 高速再転送が発生した回数である。 |
| Timeouts | DWORD | 4 | +4 | +4 | 再送タイムアウトが発生した回数である。 |
| SubsequentTimeouts | DWORD | 4 | +8 | +8 | 連続して発生した(後続の)タイムアウト回数である。 |
| CurTimeoutCount | DWORD | 4 | +12 | +12 | 現在連続発生中のタイムアウト数である。 |
| AbruptTimeouts | DWORD | 4 | +16 | +16 | 突発的なタイムアウト(データ未送信時)の回数である。 |
| PktsRetrans | DWORD | 4 | +20 | +20 | 再送されたパケット数である。 |
| BytesRetrans | DWORD | 4 | +24 | +24 | 再送されたバイト数である。 |
| DupAcksIn | DWORD | 4 | +28 | +28 | 受信した重複ACKの数である。 |
| SacksRcvd | DWORD | 4 | +32 | +32 | 受信したSACK(選択的確認応答)の数である。 |
| SackBlocksRcvd | DWORD | 4 | +36 | +36 | 受信したSACKブロックの総数である。 |
| CongSignals | DWORD | 4 | +40 | +40 | 受信した輻輳シグナルの数である。 |
| PreCongSumCwnd | DWORD | 4 | +44 | +44 | 輻輳発生直前の輻輳ウィンドウの累計(平均算出用)である。 |
| PreCongSumRtt | DWORD | 4 | +48 | +48 | 輻輳発生直前のRTTの累計(平均算出用)である。 |
| PostCongSumRtt | DWORD | 4 | +52 | +52 | 輻輳発生後のRTTの累計(平均算出用)である。 |
| PostCongCountRtt | DWORD | 4 | +56 | +56 | 輻輳発生後のRTTサンプル数である。 |
| EcnSignals | DWORD | 4 | +60 | +60 | 受信したECN(明示的輻輳通知)シグナルの数である。 |
| EceRcvd | DWORD | 4 | +64 | +64 | ECEフラグ付きで受信したセグメント数である。 |
| SendStall | DWORD | 4 | +68 | +68 | 送信が停止(ストール)した回数である。 |
| QuenchRcvd | DWORD | 4 | +72 | +72 | 受信したICMP source quenchメッセージの数である。 |
| RetranThresh | DWORD | 4 | +76 | +76 | 高速再転送をトリガーする重複ACK閾値である。 |
| SndDupAckEpisodes | DWORD | 4 | +80 | +80 | 送信側で重複ACKエピソードが発生した回数である。 |
| SumBytesReordered | DWORD | 4 | +84 | +84 | 並べ替えが検出されたバイト数の累計である。 |
| NonRecovDa | DWORD | 4 | +88 | +88 | 回復に至らなかった重複ACKの数である。 |
| NonRecovDaEpisodes | DWORD | 4 | +92 | +92 | 回復に至らなかった重複ACKエピソードの数である。 |
| AckAfterFr | DWORD | 4 | +96 | +96 | 高速回復後に受信したACKの数である。 |
| DsackDups | DWORD | 4 | +100 | +100 | D-SACKで報告された重複セグメント数である。 |
| SampleRtt | DWORD | 4 | +104 | +104 | 最新のRTTサンプル値(ミリ秒)である。 |
| SmoothedRtt | DWORD | 4 | +108 | +108 | 平滑化されたRTT(SRTT)の値(ミリ秒)である。 |
| RttVar | DWORD | 4 | +112 | +112 | RTTの変動量(RTTVAR)の値(ミリ秒)である。 |
| MaxRtt | DWORD | 4 | +116 | +116 | 観測された最大RTT(ミリ秒)である。 |
| MinRtt | DWORD | 4 | +120 | +120 | 観測された最小RTT(ミリ秒)である。 |
| SumRtt | DWORD | 4 | +124 | +124 | RTTサンプルの累計(平均算出用、ミリ秒)である。 |
| CountRtt | DWORD | 4 | +128 | +128 | RTTサンプルの数(SumRttとの組で平均算出)である。 |
| CurRto | DWORD | 4 | +132 | +132 | 現在の再送タイムアウト値(RTO、ミリ秒)である。 |
| MaxRto | DWORD | 4 | +136 | +136 | 観測された最大RTO(ミリ秒)である。 |
| MinRto | DWORD | 4 | +140 | +140 | 観測された最小RTO(ミリ秒)である。 |
| CurMss | DWORD | 4 | +144 | +144 | 現在の最大セグメントサイズ(MSS、バイト)である。 |
| MaxMss | DWORD | 4 | +148 | +148 | 観測された最大MSS(バイト)である。 |
| MinMss | DWORD | 4 | +152 | +152 | 観測された最小MSS(バイト)である。 |
| SpuriousRtoDetections | DWORD | 4 | +156 | +156 | 誤った(不要な)RTOが検出された回数である。 |
各言語での定義
#include <windows.h>
// TCP_ESTATS_PATH_ROD_v0 (x64 160 / x86 160 バイト)
typedef struct TCP_ESTATS_PATH_ROD_v0 {
DWORD FastRetran;
DWORD Timeouts;
DWORD SubsequentTimeouts;
DWORD CurTimeoutCount;
DWORD AbruptTimeouts;
DWORD PktsRetrans;
DWORD BytesRetrans;
DWORD DupAcksIn;
DWORD SacksRcvd;
DWORD SackBlocksRcvd;
DWORD CongSignals;
DWORD PreCongSumCwnd;
DWORD PreCongSumRtt;
DWORD PostCongSumRtt;
DWORD PostCongCountRtt;
DWORD EcnSignals;
DWORD EceRcvd;
DWORD SendStall;
DWORD QuenchRcvd;
DWORD RetranThresh;
DWORD SndDupAckEpisodes;
DWORD SumBytesReordered;
DWORD NonRecovDa;
DWORD NonRecovDaEpisodes;
DWORD AckAfterFr;
DWORD DsackDups;
DWORD SampleRtt;
DWORD SmoothedRtt;
DWORD RttVar;
DWORD MaxRtt;
DWORD MinRtt;
DWORD SumRtt;
DWORD CountRtt;
DWORD CurRto;
DWORD MaxRto;
DWORD MinRto;
DWORD CurMss;
DWORD MaxMss;
DWORD MinMss;
DWORD SpuriousRtoDetections;
} TCP_ESTATS_PATH_ROD_v0;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct TCP_ESTATS_PATH_ROD_v0
{
public uint FastRetran;
public uint Timeouts;
public uint SubsequentTimeouts;
public uint CurTimeoutCount;
public uint AbruptTimeouts;
public uint PktsRetrans;
public uint BytesRetrans;
public uint DupAcksIn;
public uint SacksRcvd;
public uint SackBlocksRcvd;
public uint CongSignals;
public uint PreCongSumCwnd;
public uint PreCongSumRtt;
public uint PostCongSumRtt;
public uint PostCongCountRtt;
public uint EcnSignals;
public uint EceRcvd;
public uint SendStall;
public uint QuenchRcvd;
public uint RetranThresh;
public uint SndDupAckEpisodes;
public uint SumBytesReordered;
public uint NonRecovDa;
public uint NonRecovDaEpisodes;
public uint AckAfterFr;
public uint DsackDups;
public uint SampleRtt;
public uint SmoothedRtt;
public uint RttVar;
public uint MaxRtt;
public uint MinRtt;
public uint SumRtt;
public uint CountRtt;
public uint CurRto;
public uint MaxRto;
public uint MinRto;
public uint CurMss;
public uint MaxMss;
public uint MinMss;
public uint SpuriousRtoDetections;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure TCP_ESTATS_PATH_ROD_v0
Public FastRetran As UInteger
Public Timeouts As UInteger
Public SubsequentTimeouts As UInteger
Public CurTimeoutCount As UInteger
Public AbruptTimeouts As UInteger
Public PktsRetrans As UInteger
Public BytesRetrans As UInteger
Public DupAcksIn As UInteger
Public SacksRcvd As UInteger
Public SackBlocksRcvd As UInteger
Public CongSignals As UInteger
Public PreCongSumCwnd As UInteger
Public PreCongSumRtt As UInteger
Public PostCongSumRtt As UInteger
Public PostCongCountRtt As UInteger
Public EcnSignals As UInteger
Public EceRcvd As UInteger
Public SendStall As UInteger
Public QuenchRcvd As UInteger
Public RetranThresh As UInteger
Public SndDupAckEpisodes As UInteger
Public SumBytesReordered As UInteger
Public NonRecovDa As UInteger
Public NonRecovDaEpisodes As UInteger
Public AckAfterFr As UInteger
Public DsackDups As UInteger
Public SampleRtt As UInteger
Public SmoothedRtt As UInteger
Public RttVar As UInteger
Public MaxRtt As UInteger
Public MinRtt As UInteger
Public SumRtt As UInteger
Public CountRtt As UInteger
Public CurRto As UInteger
Public MaxRto As UInteger
Public MinRto As UInteger
Public CurMss As UInteger
Public MaxMss As UInteger
Public MinMss As UInteger
Public SpuriousRtoDetections As UInteger
End Structureimport ctypes
from ctypes import wintypes
class TCP_ESTATS_PATH_ROD_v0(ctypes.Structure):
_fields_ = [
("FastRetran", wintypes.DWORD),
("Timeouts", wintypes.DWORD),
("SubsequentTimeouts", wintypes.DWORD),
("CurTimeoutCount", wintypes.DWORD),
("AbruptTimeouts", wintypes.DWORD),
("PktsRetrans", wintypes.DWORD),
("BytesRetrans", wintypes.DWORD),
("DupAcksIn", wintypes.DWORD),
("SacksRcvd", wintypes.DWORD),
("SackBlocksRcvd", wintypes.DWORD),
("CongSignals", wintypes.DWORD),
("PreCongSumCwnd", wintypes.DWORD),
("PreCongSumRtt", wintypes.DWORD),
("PostCongSumRtt", wintypes.DWORD),
("PostCongCountRtt", wintypes.DWORD),
("EcnSignals", wintypes.DWORD),
("EceRcvd", wintypes.DWORD),
("SendStall", wintypes.DWORD),
("QuenchRcvd", wintypes.DWORD),
("RetranThresh", wintypes.DWORD),
("SndDupAckEpisodes", wintypes.DWORD),
("SumBytesReordered", wintypes.DWORD),
("NonRecovDa", wintypes.DWORD),
("NonRecovDaEpisodes", wintypes.DWORD),
("AckAfterFr", wintypes.DWORD),
("DsackDups", wintypes.DWORD),
("SampleRtt", wintypes.DWORD),
("SmoothedRtt", wintypes.DWORD),
("RttVar", wintypes.DWORD),
("MaxRtt", wintypes.DWORD),
("MinRtt", wintypes.DWORD),
("SumRtt", wintypes.DWORD),
("CountRtt", wintypes.DWORD),
("CurRto", wintypes.DWORD),
("MaxRto", wintypes.DWORD),
("MinRto", wintypes.DWORD),
("CurMss", wintypes.DWORD),
("MaxMss", wintypes.DWORD),
("MinMss", wintypes.DWORD),
("SpuriousRtoDetections", wintypes.DWORD),
]#[repr(C)]
pub struct TCP_ESTATS_PATH_ROD_v0 {
pub FastRetran: u32,
pub Timeouts: u32,
pub SubsequentTimeouts: u32,
pub CurTimeoutCount: u32,
pub AbruptTimeouts: u32,
pub PktsRetrans: u32,
pub BytesRetrans: u32,
pub DupAcksIn: u32,
pub SacksRcvd: u32,
pub SackBlocksRcvd: u32,
pub CongSignals: u32,
pub PreCongSumCwnd: u32,
pub PreCongSumRtt: u32,
pub PostCongSumRtt: u32,
pub PostCongCountRtt: u32,
pub EcnSignals: u32,
pub EceRcvd: u32,
pub SendStall: u32,
pub QuenchRcvd: u32,
pub RetranThresh: u32,
pub SndDupAckEpisodes: u32,
pub SumBytesReordered: u32,
pub NonRecovDa: u32,
pub NonRecovDaEpisodes: u32,
pub AckAfterFr: u32,
pub DsackDups: u32,
pub SampleRtt: u32,
pub SmoothedRtt: u32,
pub RttVar: u32,
pub MaxRtt: u32,
pub MinRtt: u32,
pub SumRtt: u32,
pub CountRtt: u32,
pub CurRto: u32,
pub MaxRto: u32,
pub MinRto: u32,
pub CurMss: u32,
pub MaxMss: u32,
pub MinMss: u32,
pub SpuriousRtoDetections: u32,
}import "golang.org/x/sys/windows"
type TCP_ESTATS_PATH_ROD_v0 struct {
FastRetran uint32
Timeouts uint32
SubsequentTimeouts uint32
CurTimeoutCount uint32
AbruptTimeouts uint32
PktsRetrans uint32
BytesRetrans uint32
DupAcksIn uint32
SacksRcvd uint32
SackBlocksRcvd uint32
CongSignals uint32
PreCongSumCwnd uint32
PreCongSumRtt uint32
PostCongSumRtt uint32
PostCongCountRtt uint32
EcnSignals uint32
EceRcvd uint32
SendStall uint32
QuenchRcvd uint32
RetranThresh uint32
SndDupAckEpisodes uint32
SumBytesReordered uint32
NonRecovDa uint32
NonRecovDaEpisodes uint32
AckAfterFr uint32
DsackDups uint32
SampleRtt uint32
SmoothedRtt uint32
RttVar uint32
MaxRtt uint32
MinRtt uint32
SumRtt uint32
CountRtt uint32
CurRto uint32
MaxRto uint32
MinRto uint32
CurMss uint32
MaxMss uint32
MinMss uint32
SpuriousRtoDetections uint32
}type
TCP_ESTATS_PATH_ROD_v0 = record
FastRetran: DWORD;
Timeouts: DWORD;
SubsequentTimeouts: DWORD;
CurTimeoutCount: DWORD;
AbruptTimeouts: DWORD;
PktsRetrans: DWORD;
BytesRetrans: DWORD;
DupAcksIn: DWORD;
SacksRcvd: DWORD;
SackBlocksRcvd: DWORD;
CongSignals: DWORD;
PreCongSumCwnd: DWORD;
PreCongSumRtt: DWORD;
PostCongSumRtt: DWORD;
PostCongCountRtt: DWORD;
EcnSignals: DWORD;
EceRcvd: DWORD;
SendStall: DWORD;
QuenchRcvd: DWORD;
RetranThresh: DWORD;
SndDupAckEpisodes: DWORD;
SumBytesReordered: DWORD;
NonRecovDa: DWORD;
NonRecovDaEpisodes: DWORD;
AckAfterFr: DWORD;
DsackDups: DWORD;
SampleRtt: DWORD;
SmoothedRtt: DWORD;
RttVar: DWORD;
MaxRtt: DWORD;
MinRtt: DWORD;
SumRtt: DWORD;
CountRtt: DWORD;
CurRto: DWORD;
MaxRto: DWORD;
MinRto: DWORD;
CurMss: DWORD;
MaxMss: DWORD;
MinMss: DWORD;
SpuriousRtoDetections: DWORD;
end;const TCP_ESTATS_PATH_ROD_v0 = extern struct {
FastRetran: u32,
Timeouts: u32,
SubsequentTimeouts: u32,
CurTimeoutCount: u32,
AbruptTimeouts: u32,
PktsRetrans: u32,
BytesRetrans: u32,
DupAcksIn: u32,
SacksRcvd: u32,
SackBlocksRcvd: u32,
CongSignals: u32,
PreCongSumCwnd: u32,
PreCongSumRtt: u32,
PostCongSumRtt: u32,
PostCongCountRtt: u32,
EcnSignals: u32,
EceRcvd: u32,
SendStall: u32,
QuenchRcvd: u32,
RetranThresh: u32,
SndDupAckEpisodes: u32,
SumBytesReordered: u32,
NonRecovDa: u32,
NonRecovDaEpisodes: u32,
AckAfterFr: u32,
DsackDups: u32,
SampleRtt: u32,
SmoothedRtt: u32,
RttVar: u32,
MaxRtt: u32,
MinRtt: u32,
SumRtt: u32,
CountRtt: u32,
CurRto: u32,
MaxRto: u32,
MinRto: u32,
CurMss: u32,
MaxMss: u32,
MinMss: u32,
SpuriousRtoDetections: u32,
};type
TCP_ESTATS_PATH_ROD_v0 {.bycopy.} = object
FastRetran: uint32
Timeouts: uint32
SubsequentTimeouts: uint32
CurTimeoutCount: uint32
AbruptTimeouts: uint32
PktsRetrans: uint32
BytesRetrans: uint32
DupAcksIn: uint32
SacksRcvd: uint32
SackBlocksRcvd: uint32
CongSignals: uint32
PreCongSumCwnd: uint32
PreCongSumRtt: uint32
PostCongSumRtt: uint32
PostCongCountRtt: uint32
EcnSignals: uint32
EceRcvd: uint32
SendStall: uint32
QuenchRcvd: uint32
RetranThresh: uint32
SndDupAckEpisodes: uint32
SumBytesReordered: uint32
NonRecovDa: uint32
NonRecovDaEpisodes: uint32
AckAfterFr: uint32
DsackDups: uint32
SampleRtt: uint32
SmoothedRtt: uint32
RttVar: uint32
MaxRtt: uint32
MinRtt: uint32
SumRtt: uint32
CountRtt: uint32
CurRto: uint32
MaxRto: uint32
MinRto: uint32
CurMss: uint32
MaxMss: uint32
MinMss: uint32
SpuriousRtoDetections: uint32struct TCP_ESTATS_PATH_ROD_v0
{
uint FastRetran;
uint Timeouts;
uint SubsequentTimeouts;
uint CurTimeoutCount;
uint AbruptTimeouts;
uint PktsRetrans;
uint BytesRetrans;
uint DupAcksIn;
uint SacksRcvd;
uint SackBlocksRcvd;
uint CongSignals;
uint PreCongSumCwnd;
uint PreCongSumRtt;
uint PostCongSumRtt;
uint PostCongCountRtt;
uint EcnSignals;
uint EceRcvd;
uint SendStall;
uint QuenchRcvd;
uint RetranThresh;
uint SndDupAckEpisodes;
uint SumBytesReordered;
uint NonRecovDa;
uint NonRecovDaEpisodes;
uint AckAfterFr;
uint DsackDups;
uint SampleRtt;
uint SmoothedRtt;
uint RttVar;
uint MaxRtt;
uint MinRtt;
uint SumRtt;
uint CountRtt;
uint CurRto;
uint MaxRto;
uint MinRto;
uint CurMss;
uint MaxMss;
uint MinMss;
uint SpuriousRtoDetections;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; TCP_ESTATS_PATH_ROD_v0 サイズ: 160 バイト(x64)
dim st, 40 ; 4byte整数×40(構造体サイズ 160 / 4 切り上げ)
; FastRetran : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; Timeouts : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; SubsequentTimeouts : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; CurTimeoutCount : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; AbruptTimeouts : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; PktsRetrans : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; BytesRetrans : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; DupAcksIn : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; SacksRcvd : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; SackBlocksRcvd : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; CongSignals : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; PreCongSumCwnd : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; PreCongSumRtt : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; PostCongSumRtt : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; PostCongCountRtt : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; EcnSignals : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; EceRcvd : DWORD (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; SendStall : DWORD (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; QuenchRcvd : DWORD (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; RetranThresh : DWORD (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; SndDupAckEpisodes : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; SumBytesReordered : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; NonRecovDa : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; NonRecovDaEpisodes : DWORD (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; AckAfterFr : DWORD (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; DsackDups : DWORD (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; SampleRtt : DWORD (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; SmoothedRtt : DWORD (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; RttVar : DWORD (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; MaxRtt : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; MinRtt : DWORD (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; SumRtt : DWORD (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; CountRtt : DWORD (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; CurRto : DWORD (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; MaxRto : DWORD (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; MinRto : DWORD (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; CurMss : DWORD (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; MaxMss : DWORD (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; MinMss : DWORD (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; SpuriousRtoDetections : DWORD (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global TCP_ESTATS_PATH_ROD_v0
#field int FastRetran
#field int Timeouts
#field int SubsequentTimeouts
#field int CurTimeoutCount
#field int AbruptTimeouts
#field int PktsRetrans
#field int BytesRetrans
#field int DupAcksIn
#field int SacksRcvd
#field int SackBlocksRcvd
#field int CongSignals
#field int PreCongSumCwnd
#field int PreCongSumRtt
#field int PostCongSumRtt
#field int PostCongCountRtt
#field int EcnSignals
#field int EceRcvd
#field int SendStall
#field int QuenchRcvd
#field int RetranThresh
#field int SndDupAckEpisodes
#field int SumBytesReordered
#field int NonRecovDa
#field int NonRecovDaEpisodes
#field int AckAfterFr
#field int DsackDups
#field int SampleRtt
#field int SmoothedRtt
#field int RttVar
#field int MaxRtt
#field int MinRtt
#field int SumRtt
#field int CountRtt
#field int CurRto
#field int MaxRto
#field int MinRto
#field int CurMss
#field int MaxMss
#field int MinMss
#field int SpuriousRtoDetections
#endstruct
stdim st, TCP_ESTATS_PATH_ROD_v0 ; NSTRUCT 変数を確保
st->FastRetran = 100
mes "FastRetran=" + st->FastRetran