Win32 API 日本語リファレンス
ホームNetworkManagement.WindowsFilteringPlatform › FWPM_STATISTICS0

FWPM_STATISTICS0

構造体
サイズx64: 240 バイト / x86: 232 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
numLayerStatisticsDWORD4+0+0layerStatistics配列の要素数。
layerStatisticsFWPM_LAYER_STATISTICS0*8/4+8+4各レイヤーの統計配列へのポインター。
inboundAllowedConnectionsV4DWORD4+16+8許可されたIPv4受信接続数。
inboundBlockedConnectionsV4DWORD4+20+12ブロックされたIPv4受信接続数。
outboundAllowedConnectionsV4DWORD4+24+16許可されたIPv4送信接続数。
outboundBlockedConnectionsV4DWORD4+28+20ブロックされたIPv4送信接続数。
inboundAllowedConnectionsV6DWORD4+32+24許可されたIPv6受信接続数。
inboundBlockedConnectionsV6DWORD4+36+28ブロックされたIPv6受信接続数。
outboundAllowedConnectionsV6DWORD4+40+32許可されたIPv6送信接続数。
outboundBlockedConnectionsV6DWORD4+44+36ブロックされたIPv6送信接続数。
inboundActiveConnectionsV4DWORD4+48+40現在アクティブなIPv4受信接続数。
outboundActiveConnectionsV4DWORD4+52+44現在アクティブなIPv4送信接続数。
inboundActiveConnectionsV6DWORD4+56+48現在アクティブなIPv6受信接続数。
outboundActiveConnectionsV6DWORD4+60+52現在アクティブなIPv6送信接続数。
reauthDirInboundULONGLONG8+64+56受信方向で再認証が発生した回数。
reauthDirOutboundULONGLONG8+72+64送信方向で再認証が発生した回数。
reauthFamilyV4ULONGLONG8+80+72IPv4で再認証が発生した回数。
reauthFamilyV6ULONGLONG8+88+80IPv6で再認証が発生した回数。
reauthProtoOtherULONGLONG8+96+88その他プロトコルで再認証が発生した回数。
reauthProtoIPv4ULONGLONG8+104+96IPv4プロトコルで再認証が発生した回数。
reauthProtoIPv6ULONGLONG8+112+104IPv6プロトコルで再認証が発生した回数。
reauthProtoICMPULONGLONG8+120+112ICMPで再認証が発生した回数。
reauthProtoICMP6ULONGLONG8+128+120ICMPv6で再認証が発生した回数。
reauthProtoUDPULONGLONG8+136+128UDPで再認証が発生した回数。
reauthProtoTCPULONGLONG8+144+136TCPで再認証が発生した回数。
reauthReasonPolicyChangeULONGLONG8+152+144ポリシー変更を理由とする再認証の回数。
reauthReasonNewArrivalInterfaceULONGLONG8+160+152到着インターフェイス変更を理由とする再認証の回数。
reauthReasonNewNextHopInterfaceULONGLONG8+168+160ネクストホップインターフェイス変更を理由とする再認証の回数。
reauthReasonProfileCrossingULONGLONG8+176+168プロファイル境界の越境を理由とする再認証の回数。
reauthReasonClassifyCompletionULONGLONG8+184+176分類完了を理由とする再認証の回数。
reauthReasonIPSecPropertiesChangedULONGLONG8+192+184IPsecプロパティ変更を理由とする再認証の回数。
reauthReasonMidStreamInspectionULONGLONG8+200+192ストリーム途中検査を理由とする再認証の回数。
reauthReasonSocketPropertyChangedULONGLONG8+208+200ソケットプロパティ変更を理由とする再認証の回数。
reauthReasonNewInboundMCastBCastPacketULONGLONG8+216+208新規のマルチ/ブロードキャスト受信パケットを理由とする再認証の回数。
reauthReasonEDPPolicyChangedULONGLONG8+224+216エンタープライズデータ保護ポリシー変更を理由とする再認証の回数。
reauthReasonProxyHandleChangedULONGLONG8+232+224プロキシハンドル変更を理由とする再認証の回数。

各言語での定義

#include <windows.h>

// FWPM_STATISTICS0  (x64 240 / x86 232 バイト)
typedef struct FWPM_STATISTICS0 {
    DWORD numLayerStatistics;
    FWPM_LAYER_STATISTICS0* 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_STATISTICS0;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FWPM_STATISTICS0
{
    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_STATISTICS0
    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 Structure
import ctypes
from ctypes import wintypes

class FWPM_STATISTICS0(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_STATISTICS0 {
    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_STATISTICS0 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_STATISTICS0 = 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_STATISTICS0 = 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_STATISTICS0 {.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: uint64
struct FWPM_STATISTICS0
{
    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_STATISTICS0 サイズ: 232 バイト(x86)
dim st, 58    ; 4byte整数×58(構造体サイズ 232 / 4 切り上げ)
; numLayerStatistics : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; layerStatistics : FWPM_LAYER_STATISTICS0* (+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_STATISTICS0 サイズ: 240 バイト(x64)
dim st, 60    ; 4byte整数×60(構造体サイズ 240 / 4 切り上げ)
; numLayerStatistics : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; layerStatistics : FWPM_LAYER_STATISTICS0* (+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_STATISTICS0
    #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_STATISTICS0        ; NSTRUCT 変数を確保
st->numLayerStatistics = 100
mes "numLayerStatistics=" + st->numLayerStatistics