ホーム › NetworkManagement.WindowsFilteringPlatform › FWPM_STATISTICS1
FWPM_STATISTICS1
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| numLayerStatistics | DWORD | 4 | +0 | +0 | layerStatistics配列の要素数。 |
| layerStatistics | FWPM_LAYER_STATISTICS1* | 8/4 | +8 | +4 | 各レイヤーの統計(バージョン1)配列へのポインター。 |
| inboundAllowedConnectionsV4 | DWORD | 4 | +16 | +8 | 許可されたIPv4受信接続数。 |
| inboundBlockedConnectionsV4 | DWORD | 4 | +20 | +12 | ブロックされたIPv4受信接続数。 |
| outboundAllowedConnectionsV4 | DWORD | 4 | +24 | +16 | 許可されたIPv4送信接続数。 |
| outboundBlockedConnectionsV4 | DWORD | 4 | +28 | +20 | ブロックされたIPv4送信接続数。 |
| inboundAllowedConnectionsV6 | DWORD | 4 | +32 | +24 | 許可されたIPv6受信接続数。 |
| inboundBlockedConnectionsV6 | DWORD | 4 | +36 | +28 | ブロックされたIPv6受信接続数。 |
| outboundAllowedConnectionsV6 | DWORD | 4 | +40 | +32 | 許可されたIPv6送信接続数。 |
| outboundBlockedConnectionsV6 | DWORD | 4 | +44 | +36 | ブロックされたIPv6送信接続数。 |
| inboundActiveConnectionsV4 | DWORD | 4 | +48 | +40 | 現在アクティブなIPv4受信接続数。 |
| outboundActiveConnectionsV4 | DWORD | 4 | +52 | +44 | 現在アクティブなIPv4送信接続数。 |
| inboundActiveConnectionsV6 | DWORD | 4 | +56 | +48 | 現在アクティブなIPv6受信接続数。 |
| outboundActiveConnectionsV6 | DWORD | 4 | +60 | +52 | 現在アクティブなIPv6送信接続数。 |
| reauthDirInbound | ULONGLONG | 8 | +64 | +56 | 受信方向で再認証が発生した回数。 |
| reauthDirOutbound | ULONGLONG | 8 | +72 | +64 | 送信方向で再認証が発生した回数。 |
| reauthFamilyV4 | ULONGLONG | 8 | +80 | +72 | IPv4で再認証が発生した回数。 |
| reauthFamilyV6 | ULONGLONG | 8 | +88 | +80 | IPv6で再認証が発生した回数。 |
| reauthProtoOther | ULONGLONG | 8 | +96 | +88 | その他プロトコルで再認証が発生した回数。 |
| reauthProtoIPv4 | ULONGLONG | 8 | +104 | +96 | IPv4プロトコルで再認証が発生した回数。 |
| reauthProtoIPv6 | ULONGLONG | 8 | +112 | +104 | IPv6プロトコルで再認証が発生した回数。 |
| reauthProtoICMP | ULONGLONG | 8 | +120 | +112 | ICMPで再認証が発生した回数。 |
| reauthProtoICMP6 | ULONGLONG | 8 | +128 | +120 | ICMPv6で再認証が発生した回数。 |
| reauthProtoUDP | ULONGLONG | 8 | +136 | +128 | UDPで再認証が発生した回数。 |
| reauthProtoTCP | ULONGLONG | 8 | +144 | +136 | TCPで再認証が発生した回数。 |
| reauthReasonPolicyChange | ULONGLONG | 8 | +152 | +144 | ポリシー変更を理由とする再認証の回数。 |
| reauthReasonNewArrivalInterface | ULONGLONG | 8 | +160 | +152 | 到着インターフェイス変更を理由とする再認証の回数。 |
| reauthReasonNewNextHopInterface | ULONGLONG | 8 | +168 | +160 | ネクストホップインターフェイス変更を理由とする再認証の回数。 |
| reauthReasonProfileCrossing | ULONGLONG | 8 | +176 | +168 | プロファイル境界の越境を理由とする再認証の回数。 |
| reauthReasonClassifyCompletion | ULONGLONG | 8 | +184 | +176 | 分類完了を理由とする再認証の回数。 |
| reauthReasonIPSecPropertiesChanged | ULONGLONG | 8 | +192 | +184 | IPsecプロパティ変更を理由とする再認証の回数。 |
| reauthReasonMidStreamInspection | ULONGLONG | 8 | +200 | +192 | ストリーム途中検査を理由とする再認証の回数。 |
| reauthReasonSocketPropertyChanged | ULONGLONG | 8 | +208 | +200 | ソケットプロパティ変更を理由とする再認証の回数。 |
| reauthReasonNewInboundMCastBCastPacket | ULONGLONG | 8 | +216 | +208 | 新規のマルチ/ブロードキャスト受信パケットを理由とする再認証の回数。 |
| reauthReasonEDPPolicyChanged | ULONGLONG | 8 | +224 | +216 | エンタープライズデータ保護ポリシー変更を理由とする再認証の回数。 |
| reauthReasonProxyHandleChanged | ULONGLONG | 8 | +232 | +224 | プロキシハンドル変更を理由とする再認証の回数。 |
各言語での定義
#include <windows.h>
// FWPM_STATISTICS1 (x64 240 / x86 232 バイト)
typedef struct FWPM_STATISTICS1 {
DWORD numLayerStatistics;
FWPM_LAYER_STATISTICS1* layerStatistics;
DWORD inboundAllowedConnectionsV4;
DWORD inboundBlockedConnectionsV4;
DWORD outboundAllowedConnectionsV4;
DWORD outboundBlockedConnectionsV4;
DWORD inboundAllowedConnectionsV6;
DWORD inboundBlockedConnectionsV6;
DWORD outboundAllowedConnectionsV6;
DWORD outboundBlockedConnectionsV6;
DWORD inboundActiveConnectionsV4;
DWORD outboundActiveConnectionsV4;
DWORD inboundActiveConnectionsV6;
DWORD outboundActiveConnectionsV6;
ULONGLONG reauthDirInbound;
ULONGLONG reauthDirOutbound;
ULONGLONG reauthFamilyV4;
ULONGLONG reauthFamilyV6;
ULONGLONG reauthProtoOther;
ULONGLONG reauthProtoIPv4;
ULONGLONG reauthProtoIPv6;
ULONGLONG reauthProtoICMP;
ULONGLONG reauthProtoICMP6;
ULONGLONG reauthProtoUDP;
ULONGLONG reauthProtoTCP;
ULONGLONG reauthReasonPolicyChange;
ULONGLONG reauthReasonNewArrivalInterface;
ULONGLONG reauthReasonNewNextHopInterface;
ULONGLONG reauthReasonProfileCrossing;
ULONGLONG reauthReasonClassifyCompletion;
ULONGLONG reauthReasonIPSecPropertiesChanged;
ULONGLONG reauthReasonMidStreamInspection;
ULONGLONG reauthReasonSocketPropertyChanged;
ULONGLONG reauthReasonNewInboundMCastBCastPacket;
ULONGLONG reauthReasonEDPPolicyChanged;
ULONGLONG reauthReasonProxyHandleChanged;
} FWPM_STATISTICS1;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FWPM_STATISTICS1
{
public uint numLayerStatistics;
public IntPtr layerStatistics;
public uint inboundAllowedConnectionsV4;
public uint inboundBlockedConnectionsV4;
public uint outboundAllowedConnectionsV4;
public uint outboundBlockedConnectionsV4;
public uint inboundAllowedConnectionsV6;
public uint inboundBlockedConnectionsV6;
public uint outboundAllowedConnectionsV6;
public uint outboundBlockedConnectionsV6;
public uint inboundActiveConnectionsV4;
public uint outboundActiveConnectionsV4;
public uint inboundActiveConnectionsV6;
public uint outboundActiveConnectionsV6;
public ulong reauthDirInbound;
public ulong reauthDirOutbound;
public ulong reauthFamilyV4;
public ulong reauthFamilyV6;
public ulong reauthProtoOther;
public ulong reauthProtoIPv4;
public ulong reauthProtoIPv6;
public ulong reauthProtoICMP;
public ulong reauthProtoICMP6;
public ulong reauthProtoUDP;
public ulong reauthProtoTCP;
public ulong reauthReasonPolicyChange;
public ulong reauthReasonNewArrivalInterface;
public ulong reauthReasonNewNextHopInterface;
public ulong reauthReasonProfileCrossing;
public ulong reauthReasonClassifyCompletion;
public ulong reauthReasonIPSecPropertiesChanged;
public ulong reauthReasonMidStreamInspection;
public ulong reauthReasonSocketPropertyChanged;
public ulong reauthReasonNewInboundMCastBCastPacket;
public ulong reauthReasonEDPPolicyChanged;
public ulong reauthReasonProxyHandleChanged;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure FWPM_STATISTICS1
Public numLayerStatistics As UInteger
Public layerStatistics As IntPtr
Public inboundAllowedConnectionsV4 As UInteger
Public inboundBlockedConnectionsV4 As UInteger
Public outboundAllowedConnectionsV4 As UInteger
Public outboundBlockedConnectionsV4 As UInteger
Public inboundAllowedConnectionsV6 As UInteger
Public inboundBlockedConnectionsV6 As UInteger
Public outboundAllowedConnectionsV6 As UInteger
Public outboundBlockedConnectionsV6 As UInteger
Public inboundActiveConnectionsV4 As UInteger
Public outboundActiveConnectionsV4 As UInteger
Public inboundActiveConnectionsV6 As UInteger
Public outboundActiveConnectionsV6 As UInteger
Public reauthDirInbound As ULong
Public reauthDirOutbound As ULong
Public reauthFamilyV4 As ULong
Public reauthFamilyV6 As ULong
Public reauthProtoOther As ULong
Public reauthProtoIPv4 As ULong
Public reauthProtoIPv6 As ULong
Public reauthProtoICMP As ULong
Public reauthProtoICMP6 As ULong
Public reauthProtoUDP As ULong
Public reauthProtoTCP As ULong
Public reauthReasonPolicyChange As ULong
Public reauthReasonNewArrivalInterface As ULong
Public reauthReasonNewNextHopInterface As ULong
Public reauthReasonProfileCrossing As ULong
Public reauthReasonClassifyCompletion As ULong
Public reauthReasonIPSecPropertiesChanged As ULong
Public reauthReasonMidStreamInspection As ULong
Public reauthReasonSocketPropertyChanged As ULong
Public reauthReasonNewInboundMCastBCastPacket As ULong
Public reauthReasonEDPPolicyChanged As ULong
Public reauthReasonProxyHandleChanged As ULong
End Structureimport ctypes
from ctypes import wintypes
class FWPM_STATISTICS1(ctypes.Structure):
_fields_ = [
("numLayerStatistics", wintypes.DWORD),
("layerStatistics", ctypes.c_void_p),
("inboundAllowedConnectionsV4", wintypes.DWORD),
("inboundBlockedConnectionsV4", wintypes.DWORD),
("outboundAllowedConnectionsV4", wintypes.DWORD),
("outboundBlockedConnectionsV4", wintypes.DWORD),
("inboundAllowedConnectionsV6", wintypes.DWORD),
("inboundBlockedConnectionsV6", wintypes.DWORD),
("outboundAllowedConnectionsV6", wintypes.DWORD),
("outboundBlockedConnectionsV6", wintypes.DWORD),
("inboundActiveConnectionsV4", wintypes.DWORD),
("outboundActiveConnectionsV4", wintypes.DWORD),
("inboundActiveConnectionsV6", wintypes.DWORD),
("outboundActiveConnectionsV6", wintypes.DWORD),
("reauthDirInbound", ctypes.c_ulonglong),
("reauthDirOutbound", ctypes.c_ulonglong),
("reauthFamilyV4", ctypes.c_ulonglong),
("reauthFamilyV6", ctypes.c_ulonglong),
("reauthProtoOther", ctypes.c_ulonglong),
("reauthProtoIPv4", ctypes.c_ulonglong),
("reauthProtoIPv6", ctypes.c_ulonglong),
("reauthProtoICMP", ctypes.c_ulonglong),
("reauthProtoICMP6", ctypes.c_ulonglong),
("reauthProtoUDP", ctypes.c_ulonglong),
("reauthProtoTCP", ctypes.c_ulonglong),
("reauthReasonPolicyChange", ctypes.c_ulonglong),
("reauthReasonNewArrivalInterface", ctypes.c_ulonglong),
("reauthReasonNewNextHopInterface", ctypes.c_ulonglong),
("reauthReasonProfileCrossing", ctypes.c_ulonglong),
("reauthReasonClassifyCompletion", ctypes.c_ulonglong),
("reauthReasonIPSecPropertiesChanged", ctypes.c_ulonglong),
("reauthReasonMidStreamInspection", ctypes.c_ulonglong),
("reauthReasonSocketPropertyChanged", ctypes.c_ulonglong),
("reauthReasonNewInboundMCastBCastPacket", ctypes.c_ulonglong),
("reauthReasonEDPPolicyChanged", ctypes.c_ulonglong),
("reauthReasonProxyHandleChanged", ctypes.c_ulonglong),
]#[repr(C)]
pub struct FWPM_STATISTICS1 {
pub numLayerStatistics: u32,
pub layerStatistics: *mut core::ffi::c_void,
pub inboundAllowedConnectionsV4: u32,
pub inboundBlockedConnectionsV4: u32,
pub outboundAllowedConnectionsV4: u32,
pub outboundBlockedConnectionsV4: u32,
pub inboundAllowedConnectionsV6: u32,
pub inboundBlockedConnectionsV6: u32,
pub outboundAllowedConnectionsV6: u32,
pub outboundBlockedConnectionsV6: u32,
pub inboundActiveConnectionsV4: u32,
pub outboundActiveConnectionsV4: u32,
pub inboundActiveConnectionsV6: u32,
pub outboundActiveConnectionsV6: u32,
pub reauthDirInbound: u64,
pub reauthDirOutbound: u64,
pub reauthFamilyV4: u64,
pub reauthFamilyV6: u64,
pub reauthProtoOther: u64,
pub reauthProtoIPv4: u64,
pub reauthProtoIPv6: u64,
pub reauthProtoICMP: u64,
pub reauthProtoICMP6: u64,
pub reauthProtoUDP: u64,
pub reauthProtoTCP: u64,
pub reauthReasonPolicyChange: u64,
pub reauthReasonNewArrivalInterface: u64,
pub reauthReasonNewNextHopInterface: u64,
pub reauthReasonProfileCrossing: u64,
pub reauthReasonClassifyCompletion: u64,
pub reauthReasonIPSecPropertiesChanged: u64,
pub reauthReasonMidStreamInspection: u64,
pub reauthReasonSocketPropertyChanged: u64,
pub reauthReasonNewInboundMCastBCastPacket: u64,
pub reauthReasonEDPPolicyChanged: u64,
pub reauthReasonProxyHandleChanged: u64,
}import "golang.org/x/sys/windows"
type FWPM_STATISTICS1 struct {
numLayerStatistics uint32
layerStatistics uintptr
inboundAllowedConnectionsV4 uint32
inboundBlockedConnectionsV4 uint32
outboundAllowedConnectionsV4 uint32
outboundBlockedConnectionsV4 uint32
inboundAllowedConnectionsV6 uint32
inboundBlockedConnectionsV6 uint32
outboundAllowedConnectionsV6 uint32
outboundBlockedConnectionsV6 uint32
inboundActiveConnectionsV4 uint32
outboundActiveConnectionsV4 uint32
inboundActiveConnectionsV6 uint32
outboundActiveConnectionsV6 uint32
reauthDirInbound uint64
reauthDirOutbound uint64
reauthFamilyV4 uint64
reauthFamilyV6 uint64
reauthProtoOther uint64
reauthProtoIPv4 uint64
reauthProtoIPv6 uint64
reauthProtoICMP uint64
reauthProtoICMP6 uint64
reauthProtoUDP uint64
reauthProtoTCP uint64
reauthReasonPolicyChange uint64
reauthReasonNewArrivalInterface uint64
reauthReasonNewNextHopInterface uint64
reauthReasonProfileCrossing uint64
reauthReasonClassifyCompletion uint64
reauthReasonIPSecPropertiesChanged uint64
reauthReasonMidStreamInspection uint64
reauthReasonSocketPropertyChanged uint64
reauthReasonNewInboundMCastBCastPacket uint64
reauthReasonEDPPolicyChanged uint64
reauthReasonProxyHandleChanged uint64
}type
FWPM_STATISTICS1 = record
numLayerStatistics: DWORD;
layerStatistics: Pointer;
inboundAllowedConnectionsV4: DWORD;
inboundBlockedConnectionsV4: DWORD;
outboundAllowedConnectionsV4: DWORD;
outboundBlockedConnectionsV4: DWORD;
inboundAllowedConnectionsV6: DWORD;
inboundBlockedConnectionsV6: DWORD;
outboundAllowedConnectionsV6: DWORD;
outboundBlockedConnectionsV6: DWORD;
inboundActiveConnectionsV4: DWORD;
outboundActiveConnectionsV4: DWORD;
inboundActiveConnectionsV6: DWORD;
outboundActiveConnectionsV6: DWORD;
reauthDirInbound: UInt64;
reauthDirOutbound: UInt64;
reauthFamilyV4: UInt64;
reauthFamilyV6: UInt64;
reauthProtoOther: UInt64;
reauthProtoIPv4: UInt64;
reauthProtoIPv6: UInt64;
reauthProtoICMP: UInt64;
reauthProtoICMP6: UInt64;
reauthProtoUDP: UInt64;
reauthProtoTCP: UInt64;
reauthReasonPolicyChange: UInt64;
reauthReasonNewArrivalInterface: UInt64;
reauthReasonNewNextHopInterface: UInt64;
reauthReasonProfileCrossing: UInt64;
reauthReasonClassifyCompletion: UInt64;
reauthReasonIPSecPropertiesChanged: UInt64;
reauthReasonMidStreamInspection: UInt64;
reauthReasonSocketPropertyChanged: UInt64;
reauthReasonNewInboundMCastBCastPacket: UInt64;
reauthReasonEDPPolicyChanged: UInt64;
reauthReasonProxyHandleChanged: UInt64;
end;const FWPM_STATISTICS1 = extern struct {
numLayerStatistics: u32,
layerStatistics: ?*anyopaque,
inboundAllowedConnectionsV4: u32,
inboundBlockedConnectionsV4: u32,
outboundAllowedConnectionsV4: u32,
outboundBlockedConnectionsV4: u32,
inboundAllowedConnectionsV6: u32,
inboundBlockedConnectionsV6: u32,
outboundAllowedConnectionsV6: u32,
outboundBlockedConnectionsV6: u32,
inboundActiveConnectionsV4: u32,
outboundActiveConnectionsV4: u32,
inboundActiveConnectionsV6: u32,
outboundActiveConnectionsV6: u32,
reauthDirInbound: u64,
reauthDirOutbound: u64,
reauthFamilyV4: u64,
reauthFamilyV6: u64,
reauthProtoOther: u64,
reauthProtoIPv4: u64,
reauthProtoIPv6: u64,
reauthProtoICMP: u64,
reauthProtoICMP6: u64,
reauthProtoUDP: u64,
reauthProtoTCP: u64,
reauthReasonPolicyChange: u64,
reauthReasonNewArrivalInterface: u64,
reauthReasonNewNextHopInterface: u64,
reauthReasonProfileCrossing: u64,
reauthReasonClassifyCompletion: u64,
reauthReasonIPSecPropertiesChanged: u64,
reauthReasonMidStreamInspection: u64,
reauthReasonSocketPropertyChanged: u64,
reauthReasonNewInboundMCastBCastPacket: u64,
reauthReasonEDPPolicyChanged: u64,
reauthReasonProxyHandleChanged: u64,
};type
FWPM_STATISTICS1 {.bycopy.} = object
numLayerStatistics: uint32
layerStatistics: pointer
inboundAllowedConnectionsV4: uint32
inboundBlockedConnectionsV4: uint32
outboundAllowedConnectionsV4: uint32
outboundBlockedConnectionsV4: uint32
inboundAllowedConnectionsV6: uint32
inboundBlockedConnectionsV6: uint32
outboundAllowedConnectionsV6: uint32
outboundBlockedConnectionsV6: uint32
inboundActiveConnectionsV4: uint32
outboundActiveConnectionsV4: uint32
inboundActiveConnectionsV6: uint32
outboundActiveConnectionsV6: uint32
reauthDirInbound: uint64
reauthDirOutbound: uint64
reauthFamilyV4: uint64
reauthFamilyV6: uint64
reauthProtoOther: uint64
reauthProtoIPv4: uint64
reauthProtoIPv6: uint64
reauthProtoICMP: uint64
reauthProtoICMP6: uint64
reauthProtoUDP: uint64
reauthProtoTCP: uint64
reauthReasonPolicyChange: uint64
reauthReasonNewArrivalInterface: uint64
reauthReasonNewNextHopInterface: uint64
reauthReasonProfileCrossing: uint64
reauthReasonClassifyCompletion: uint64
reauthReasonIPSecPropertiesChanged: uint64
reauthReasonMidStreamInspection: uint64
reauthReasonSocketPropertyChanged: uint64
reauthReasonNewInboundMCastBCastPacket: uint64
reauthReasonEDPPolicyChanged: uint64
reauthReasonProxyHandleChanged: uint64struct FWPM_STATISTICS1
{
uint numLayerStatistics;
void* layerStatistics;
uint inboundAllowedConnectionsV4;
uint inboundBlockedConnectionsV4;
uint outboundAllowedConnectionsV4;
uint outboundBlockedConnectionsV4;
uint inboundAllowedConnectionsV6;
uint inboundBlockedConnectionsV6;
uint outboundAllowedConnectionsV6;
uint outboundBlockedConnectionsV6;
uint inboundActiveConnectionsV4;
uint outboundActiveConnectionsV4;
uint inboundActiveConnectionsV6;
uint outboundActiveConnectionsV6;
ulong reauthDirInbound;
ulong reauthDirOutbound;
ulong reauthFamilyV4;
ulong reauthFamilyV6;
ulong reauthProtoOther;
ulong reauthProtoIPv4;
ulong reauthProtoIPv6;
ulong reauthProtoICMP;
ulong reauthProtoICMP6;
ulong reauthProtoUDP;
ulong reauthProtoTCP;
ulong reauthReasonPolicyChange;
ulong reauthReasonNewArrivalInterface;
ulong reauthReasonNewNextHopInterface;
ulong reauthReasonProfileCrossing;
ulong reauthReasonClassifyCompletion;
ulong reauthReasonIPSecPropertiesChanged;
ulong reauthReasonMidStreamInspection;
ulong reauthReasonSocketPropertyChanged;
ulong reauthReasonNewInboundMCastBCastPacket;
ulong reauthReasonEDPPolicyChanged;
ulong reauthReasonProxyHandleChanged;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; FWPM_STATISTICS1 サイズ: 232 バイト(x86)
dim st, 58 ; 4byte整数×58(構造体サイズ 232 / 4 切り上げ)
; numLayerStatistics : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; layerStatistics : FWPM_LAYER_STATISTICS1* (+4, 4byte) varptr(st)+4 を基点に操作(4byte:入れ子/配列)
; inboundAllowedConnectionsV4 : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; inboundBlockedConnectionsV4 : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; outboundAllowedConnectionsV4 : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; outboundBlockedConnectionsV4 : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; inboundAllowedConnectionsV6 : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; inboundBlockedConnectionsV6 : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; outboundAllowedConnectionsV6 : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; outboundBlockedConnectionsV6 : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; inboundActiveConnectionsV4 : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; outboundActiveConnectionsV4 : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; inboundActiveConnectionsV6 : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; outboundActiveConnectionsV6 : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; reauthDirInbound : ULONGLONG (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; reauthDirOutbound : ULONGLONG (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; reauthFamilyV4 : ULONGLONG (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; reauthFamilyV6 : ULONGLONG (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; reauthProtoOther : ULONGLONG (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; reauthProtoIPv4 : ULONGLONG (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; reauthProtoIPv6 : ULONGLONG (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; reauthProtoICMP : ULONGLONG (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; reauthProtoICMP6 : ULONGLONG (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; reauthProtoUDP : ULONGLONG (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; reauthProtoTCP : ULONGLONG (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; reauthReasonPolicyChange : ULONGLONG (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; reauthReasonNewArrivalInterface : ULONGLONG (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; reauthReasonNewNextHopInterface : ULONGLONG (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; reauthReasonProfileCrossing : ULONGLONG (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; reauthReasonClassifyCompletion : ULONGLONG (+176, 8byte) qpoke st,176,値 / qpeek(st,176) ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; reauthReasonIPSecPropertiesChanged : ULONGLONG (+184, 8byte) qpoke st,184,値 / qpeek(st,184) ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; reauthReasonMidStreamInspection : ULONGLONG (+192, 8byte) qpoke st,192,値 / qpeek(st,192) ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; reauthReasonSocketPropertyChanged : ULONGLONG (+200, 8byte) qpoke st,200,値 / qpeek(st,200) ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; reauthReasonNewInboundMCastBCastPacket : ULONGLONG (+208, 8byte) qpoke st,208,値 / qpeek(st,208) ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; reauthReasonEDPPolicyChanged : ULONGLONG (+216, 8byte) qpoke st,216,値 / qpeek(st,216) ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; reauthReasonProxyHandleChanged : ULONGLONG (+224, 8byte) qpoke st,224,値 / qpeek(st,224) ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; FWPM_STATISTICS1 サイズ: 240 バイト(x64)
dim st, 60 ; 4byte整数×60(構造体サイズ 240 / 4 切り上げ)
; numLayerStatistics : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; layerStatistics : FWPM_LAYER_STATISTICS1* (+8, 8byte) varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; inboundAllowedConnectionsV4 : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; inboundBlockedConnectionsV4 : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; outboundAllowedConnectionsV4 : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; outboundBlockedConnectionsV4 : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; inboundAllowedConnectionsV6 : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; inboundBlockedConnectionsV6 : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; outboundAllowedConnectionsV6 : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; outboundBlockedConnectionsV6 : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; inboundActiveConnectionsV4 : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; outboundActiveConnectionsV4 : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; inboundActiveConnectionsV6 : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; outboundActiveConnectionsV6 : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; reauthDirInbound : ULONGLONG (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; reauthDirOutbound : ULONGLONG (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; reauthFamilyV4 : ULONGLONG (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; reauthFamilyV6 : ULONGLONG (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; reauthProtoOther : ULONGLONG (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; reauthProtoIPv4 : ULONGLONG (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; reauthProtoIPv6 : ULONGLONG (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; reauthProtoICMP : ULONGLONG (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; reauthProtoICMP6 : ULONGLONG (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; reauthProtoUDP : ULONGLONG (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; reauthProtoTCP : ULONGLONG (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; reauthReasonPolicyChange : ULONGLONG (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; reauthReasonNewArrivalInterface : ULONGLONG (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; reauthReasonNewNextHopInterface : ULONGLONG (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; reauthReasonProfileCrossing : ULONGLONG (+176, 8byte) qpoke st,176,値 / qpeek(st,176) ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; reauthReasonClassifyCompletion : ULONGLONG (+184, 8byte) qpoke st,184,値 / qpeek(st,184) ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; reauthReasonIPSecPropertiesChanged : ULONGLONG (+192, 8byte) qpoke st,192,値 / qpeek(st,192) ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; reauthReasonMidStreamInspection : ULONGLONG (+200, 8byte) qpoke st,200,値 / qpeek(st,200) ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; reauthReasonSocketPropertyChanged : ULONGLONG (+208, 8byte) qpoke st,208,値 / qpeek(st,208) ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; reauthReasonNewInboundMCastBCastPacket : ULONGLONG (+216, 8byte) qpoke st,216,値 / qpeek(st,216) ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; reauthReasonEDPPolicyChanged : ULONGLONG (+224, 8byte) qpoke st,224,値 / qpeek(st,224) ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; reauthReasonProxyHandleChanged : ULONGLONG (+232, 8byte) qpoke st,232,値 / qpeek(st,232) ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global FWPM_STATISTICS1
#field int numLayerStatistics
#field intptr layerStatistics
#field int inboundAllowedConnectionsV4
#field int inboundBlockedConnectionsV4
#field int outboundAllowedConnectionsV4
#field int outboundBlockedConnectionsV4
#field int inboundAllowedConnectionsV6
#field int inboundBlockedConnectionsV6
#field int outboundAllowedConnectionsV6
#field int outboundBlockedConnectionsV6
#field int inboundActiveConnectionsV4
#field int outboundActiveConnectionsV4
#field int inboundActiveConnectionsV6
#field int outboundActiveConnectionsV6
#field int64 reauthDirInbound
#field int64 reauthDirOutbound
#field int64 reauthFamilyV4
#field int64 reauthFamilyV6
#field int64 reauthProtoOther
#field int64 reauthProtoIPv4
#field int64 reauthProtoIPv6
#field int64 reauthProtoICMP
#field int64 reauthProtoICMP6
#field int64 reauthProtoUDP
#field int64 reauthProtoTCP
#field int64 reauthReasonPolicyChange
#field int64 reauthReasonNewArrivalInterface
#field int64 reauthReasonNewNextHopInterface
#field int64 reauthReasonProfileCrossing
#field int64 reauthReasonClassifyCompletion
#field int64 reauthReasonIPSecPropertiesChanged
#field int64 reauthReasonMidStreamInspection
#field int64 reauthReasonSocketPropertyChanged
#field int64 reauthReasonNewInboundMCastBCastPacket
#field int64 reauthReasonEDPPolicyChanged
#field int64 reauthReasonProxyHandleChanged
#endstruct
stdim st, FWPM_STATISTICS1 ; NSTRUCT 変数を確保
st->numLayerStatistics = 100
mes "numLayerStatistics=" + st->numLayerStatistics