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

MIB_FL_VIRTUAL_INTERFACE_ROW

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

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

フィールド

フィールドサイズx64x86説明
FamilyADDRESS_FAMILY2+0+0アドレスファミリ(AF_INET/AF_INET6)を示す。
IfLuidNET_LUID_LH8+8+8基礎となる物理インタフェースのLUID(NET_LUID_LH)である。
VirtualIfIdDWORD4+16+16仮想インタフェースの識別子である。
CompartmentGuidGUID16+20+20仮想インタフェースが属するコンパートメントのGUIDである。
IsolationModeNET_FL_ISOLATION_MODE4+36+36分離モード(NET_FL_ISOLATION_MODE)を示す。
OriginNET_FL_VIRTUAL_INTERFACE_ORIGIN4+40+40仮想インタフェースの出所(NET_FL_VIRTUAL_INTERFACE_ORIGIN)を示す。
VirtualIfLuidNET_LUID_LH8+48+48仮想インタフェースのLUID(NET_LUID_LH)である。
VirtualIfIndexDWORD4+56+56仮想インタフェースのインデックスである。
AllowLocalNdBOOLEAN1+60+60ローカル近隣探索(ND)を許可するかを示すブール値である。
AttachedFlsnpiClientsDWORD4+64+64アタッチされているFLSNPIクライアントの数である。
FlsnpiClientConfigErrorsDWORD4+68+68FLSNPIクライアント構成エラーの数である。
FlsnpiClientInjectErrorsULONGLONG8+72+72FLSNPIクライアントのパケット注入エラー数である。
FlsnpiClientCloneErrorsULONGLONG8+80+80FLSNPIクライアントのパケット複製エラー数である。
InFlsnpiIndicatedPacketsULONGLONG8+88+88受信方向でFLSNPIに通知されたパケット数である。
InFlsnpiClientReturnedPacketsULONGLONG8+96+96受信方向でクライアントから返却されたパケット数である。
InFlsnpiClientSilentlyDroppedPacketsULONGLONG8+104+104受信方向でクライアントが暗黙に破棄したパケット数である。
InFlsnpiClientDroppedPacketsULONGLONG8+112+112受信方向でクライアントが破棄したパケット数である。
InFlsnpiClientInjectedPacketsULONGLONG8+120+120受信方向でクライアントが注入したパケット数である。
InFlsnpiClientClonedPacketsULONGLONG8+128+128受信方向でクライアントが複製したパケット数である。
OutFlsnpiIndicatedPacketsULONGLONG8+136+136送信方向でFLSNPIに通知されたパケット数である。
OutFlsnpiClientReturnedPacketsULONGLONG8+144+144送信方向でクライアントから返却されたパケット数である。
OutFlsnpiClientDroppedPacketsULONGLONG8+152+152送信方向でクライアントが破棄したパケット数である。
OutFlsnpiClientSilentlyDroppedPacketsULONGLONG8+160+160送信方向でクライアントが暗黙に破棄したパケット数である。
OutFlsnpiClientInjectedPacketsULONGLONG8+168+168送信方向でクライアントが注入したパケット数である。
OutFlsnpiClientClonedPacketsULONGLONG8+176+176送信方向でクライアントが複製したパケット数である。
OutFlsnpiClientClonedPacketsForNbSplitULONGLONG8+184+184送信方向でNetBuffer分割のために複製されたパケット数である。

各言語での定義

#include <windows.h>

// NET_LUID_LH  (x64 8 / x86 8 バイト)
typedef struct NET_LUID_LH {
    ULONGLONG Value;
    _Info_e__Struct Info;
} NET_LUID_LH;

// MIB_FL_VIRTUAL_INTERFACE_ROW  (x64 192 / x86 192 バイト)
typedef struct MIB_FL_VIRTUAL_INTERFACE_ROW {
    ADDRESS_FAMILY Family;
    NET_LUID_LH IfLuid;
    DWORD VirtualIfId;
    GUID CompartmentGuid;
    NET_FL_ISOLATION_MODE IsolationMode;
    NET_FL_VIRTUAL_INTERFACE_ORIGIN Origin;
    NET_LUID_LH VirtualIfLuid;
    DWORD VirtualIfIndex;
    BOOLEAN AllowLocalNd;
    DWORD AttachedFlsnpiClients;
    DWORD FlsnpiClientConfigErrors;
    ULONGLONG FlsnpiClientInjectErrors;
    ULONGLONG FlsnpiClientCloneErrors;
    ULONGLONG InFlsnpiIndicatedPackets;
    ULONGLONG InFlsnpiClientReturnedPackets;
    ULONGLONG InFlsnpiClientSilentlyDroppedPackets;
    ULONGLONG InFlsnpiClientDroppedPackets;
    ULONGLONG InFlsnpiClientInjectedPackets;
    ULONGLONG InFlsnpiClientClonedPackets;
    ULONGLONG OutFlsnpiIndicatedPackets;
    ULONGLONG OutFlsnpiClientReturnedPackets;
    ULONGLONG OutFlsnpiClientDroppedPackets;
    ULONGLONG OutFlsnpiClientSilentlyDroppedPackets;
    ULONGLONG OutFlsnpiClientInjectedPackets;
    ULONGLONG OutFlsnpiClientClonedPackets;
    ULONGLONG OutFlsnpiClientClonedPacketsForNbSplit;
} MIB_FL_VIRTUAL_INTERFACE_ROW;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NET_LUID_LH
{
    public ulong Value;
    public _Info_e__Struct Info;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct MIB_FL_VIRTUAL_INTERFACE_ROW
{
    public ushort Family;
    public NET_LUID_LH IfLuid;
    public uint VirtualIfId;
    public Guid CompartmentGuid;
    public int IsolationMode;
    public int Origin;
    public NET_LUID_LH VirtualIfLuid;
    public uint VirtualIfIndex;
    [MarshalAs(UnmanagedType.U1)] public bool AllowLocalNd;
    public uint AttachedFlsnpiClients;
    public uint FlsnpiClientConfigErrors;
    public ulong FlsnpiClientInjectErrors;
    public ulong FlsnpiClientCloneErrors;
    public ulong InFlsnpiIndicatedPackets;
    public ulong InFlsnpiClientReturnedPackets;
    public ulong InFlsnpiClientSilentlyDroppedPackets;
    public ulong InFlsnpiClientDroppedPackets;
    public ulong InFlsnpiClientInjectedPackets;
    public ulong InFlsnpiClientClonedPackets;
    public ulong OutFlsnpiIndicatedPackets;
    public ulong OutFlsnpiClientReturnedPackets;
    public ulong OutFlsnpiClientDroppedPackets;
    public ulong OutFlsnpiClientSilentlyDroppedPackets;
    public ulong OutFlsnpiClientInjectedPackets;
    public ulong OutFlsnpiClientClonedPackets;
    public ulong OutFlsnpiClientClonedPacketsForNbSplit;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NET_LUID_LH
    Public Value As ULong
    Public Info As _Info_e__Struct
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure MIB_FL_VIRTUAL_INTERFACE_ROW
    Public Family As UShort
    Public IfLuid As NET_LUID_LH
    Public VirtualIfId As UInteger
    Public CompartmentGuid As Guid
    Public IsolationMode As Integer
    Public Origin As Integer
    Public VirtualIfLuid As NET_LUID_LH
    Public VirtualIfIndex As UInteger
    <MarshalAs(UnmanagedType.U1)> Public AllowLocalNd As Boolean
    Public AttachedFlsnpiClients As UInteger
    Public FlsnpiClientConfigErrors As UInteger
    Public FlsnpiClientInjectErrors As ULong
    Public FlsnpiClientCloneErrors As ULong
    Public InFlsnpiIndicatedPackets As ULong
    Public InFlsnpiClientReturnedPackets As ULong
    Public InFlsnpiClientSilentlyDroppedPackets As ULong
    Public InFlsnpiClientDroppedPackets As ULong
    Public InFlsnpiClientInjectedPackets As ULong
    Public InFlsnpiClientClonedPackets As ULong
    Public OutFlsnpiIndicatedPackets As ULong
    Public OutFlsnpiClientReturnedPackets As ULong
    Public OutFlsnpiClientDroppedPackets As ULong
    Public OutFlsnpiClientSilentlyDroppedPackets As ULong
    Public OutFlsnpiClientInjectedPackets As ULong
    Public OutFlsnpiClientClonedPackets As ULong
    Public OutFlsnpiClientClonedPacketsForNbSplit As ULong
End Structure
import ctypes
from ctypes import wintypes

class NET_LUID_LH(ctypes.Structure):
    _fields_ = [
        ("Value", ctypes.c_ulonglong),
        ("Info", _Info_e__Struct),
    ]

class MIB_FL_VIRTUAL_INTERFACE_ROW(ctypes.Structure):
    _fields_ = [
        ("Family", ctypes.c_ushort),
        ("IfLuid", NET_LUID_LH),
        ("VirtualIfId", wintypes.DWORD),
        ("CompartmentGuid", GUID),
        ("IsolationMode", ctypes.c_int),
        ("Origin", ctypes.c_int),
        ("VirtualIfLuid", NET_LUID_LH),
        ("VirtualIfIndex", wintypes.DWORD),
        ("AllowLocalNd", ctypes.c_byte),
        ("AttachedFlsnpiClients", wintypes.DWORD),
        ("FlsnpiClientConfigErrors", wintypes.DWORD),
        ("FlsnpiClientInjectErrors", ctypes.c_ulonglong),
        ("FlsnpiClientCloneErrors", ctypes.c_ulonglong),
        ("InFlsnpiIndicatedPackets", ctypes.c_ulonglong),
        ("InFlsnpiClientReturnedPackets", ctypes.c_ulonglong),
        ("InFlsnpiClientSilentlyDroppedPackets", ctypes.c_ulonglong),
        ("InFlsnpiClientDroppedPackets", ctypes.c_ulonglong),
        ("InFlsnpiClientInjectedPackets", ctypes.c_ulonglong),
        ("InFlsnpiClientClonedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiIndicatedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiClientReturnedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiClientDroppedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiClientSilentlyDroppedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiClientInjectedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiClientClonedPackets", ctypes.c_ulonglong),
        ("OutFlsnpiClientClonedPacketsForNbSplit", ctypes.c_ulonglong),
    ]
#[repr(C)]
pub struct NET_LUID_LH {
    pub Value: u64,
    pub Info: _Info_e__Struct,
}

#[repr(C)]
pub struct MIB_FL_VIRTUAL_INTERFACE_ROW {
    pub Family: u16,
    pub IfLuid: NET_LUID_LH,
    pub VirtualIfId: u32,
    pub CompartmentGuid: GUID,
    pub IsolationMode: i32,
    pub Origin: i32,
    pub VirtualIfLuid: NET_LUID_LH,
    pub VirtualIfIndex: u32,
    pub AllowLocalNd: u8,
    pub AttachedFlsnpiClients: u32,
    pub FlsnpiClientConfigErrors: u32,
    pub FlsnpiClientInjectErrors: u64,
    pub FlsnpiClientCloneErrors: u64,
    pub InFlsnpiIndicatedPackets: u64,
    pub InFlsnpiClientReturnedPackets: u64,
    pub InFlsnpiClientSilentlyDroppedPackets: u64,
    pub InFlsnpiClientDroppedPackets: u64,
    pub InFlsnpiClientInjectedPackets: u64,
    pub InFlsnpiClientClonedPackets: u64,
    pub OutFlsnpiIndicatedPackets: u64,
    pub OutFlsnpiClientReturnedPackets: u64,
    pub OutFlsnpiClientDroppedPackets: u64,
    pub OutFlsnpiClientSilentlyDroppedPackets: u64,
    pub OutFlsnpiClientInjectedPackets: u64,
    pub OutFlsnpiClientClonedPackets: u64,
    pub OutFlsnpiClientClonedPacketsForNbSplit: u64,
}
import "golang.org/x/sys/windows"

type NET_LUID_LH struct {
	Value uint64
	Info _Info_e__Struct
}

type MIB_FL_VIRTUAL_INTERFACE_ROW struct {
	Family uint16
	IfLuid NET_LUID_LH
	VirtualIfId uint32
	CompartmentGuid windows.GUID
	IsolationMode int32
	Origin int32
	VirtualIfLuid NET_LUID_LH
	VirtualIfIndex uint32
	AllowLocalNd byte
	AttachedFlsnpiClients uint32
	FlsnpiClientConfigErrors uint32
	FlsnpiClientInjectErrors uint64
	FlsnpiClientCloneErrors uint64
	InFlsnpiIndicatedPackets uint64
	InFlsnpiClientReturnedPackets uint64
	InFlsnpiClientSilentlyDroppedPackets uint64
	InFlsnpiClientDroppedPackets uint64
	InFlsnpiClientInjectedPackets uint64
	InFlsnpiClientClonedPackets uint64
	OutFlsnpiIndicatedPackets uint64
	OutFlsnpiClientReturnedPackets uint64
	OutFlsnpiClientDroppedPackets uint64
	OutFlsnpiClientSilentlyDroppedPackets uint64
	OutFlsnpiClientInjectedPackets uint64
	OutFlsnpiClientClonedPackets uint64
	OutFlsnpiClientClonedPacketsForNbSplit uint64
}
type
  NET_LUID_LH = record
    Value: UInt64;
    Info: _Info_e__Struct;
  end;

  MIB_FL_VIRTUAL_INTERFACE_ROW = record
    Family: Word;
    IfLuid: NET_LUID_LH;
    VirtualIfId: DWORD;
    CompartmentGuid: TGUID;
    IsolationMode: Integer;
    Origin: Integer;
    VirtualIfLuid: NET_LUID_LH;
    VirtualIfIndex: DWORD;
    AllowLocalNd: ByteBool;
    AttachedFlsnpiClients: DWORD;
    FlsnpiClientConfigErrors: DWORD;
    FlsnpiClientInjectErrors: UInt64;
    FlsnpiClientCloneErrors: UInt64;
    InFlsnpiIndicatedPackets: UInt64;
    InFlsnpiClientReturnedPackets: UInt64;
    InFlsnpiClientSilentlyDroppedPackets: UInt64;
    InFlsnpiClientDroppedPackets: UInt64;
    InFlsnpiClientInjectedPackets: UInt64;
    InFlsnpiClientClonedPackets: UInt64;
    OutFlsnpiIndicatedPackets: UInt64;
    OutFlsnpiClientReturnedPackets: UInt64;
    OutFlsnpiClientDroppedPackets: UInt64;
    OutFlsnpiClientSilentlyDroppedPackets: UInt64;
    OutFlsnpiClientInjectedPackets: UInt64;
    OutFlsnpiClientClonedPackets: UInt64;
    OutFlsnpiClientClonedPacketsForNbSplit: UInt64;
  end;
const NET_LUID_LH = extern struct {
    Value: u64,
    Info: _Info_e__Struct,
};

const MIB_FL_VIRTUAL_INTERFACE_ROW = extern struct {
    Family: u16,
    IfLuid: NET_LUID_LH,
    VirtualIfId: u32,
    CompartmentGuid: GUID,
    IsolationMode: i32,
    Origin: i32,
    VirtualIfLuid: NET_LUID_LH,
    VirtualIfIndex: u32,
    AllowLocalNd: u8,
    AttachedFlsnpiClients: u32,
    FlsnpiClientConfigErrors: u32,
    FlsnpiClientInjectErrors: u64,
    FlsnpiClientCloneErrors: u64,
    InFlsnpiIndicatedPackets: u64,
    InFlsnpiClientReturnedPackets: u64,
    InFlsnpiClientSilentlyDroppedPackets: u64,
    InFlsnpiClientDroppedPackets: u64,
    InFlsnpiClientInjectedPackets: u64,
    InFlsnpiClientClonedPackets: u64,
    OutFlsnpiIndicatedPackets: u64,
    OutFlsnpiClientReturnedPackets: u64,
    OutFlsnpiClientDroppedPackets: u64,
    OutFlsnpiClientSilentlyDroppedPackets: u64,
    OutFlsnpiClientInjectedPackets: u64,
    OutFlsnpiClientClonedPackets: u64,
    OutFlsnpiClientClonedPacketsForNbSplit: u64,
};
type
  NET_LUID_LH {.bycopy.} = object
    Value: uint64
    Info: _Info_e__Struct

  MIB_FL_VIRTUAL_INTERFACE_ROW {.bycopy.} = object
    Family: uint16
    IfLuid: NET_LUID_LH
    VirtualIfId: uint32
    CompartmentGuid: GUID
    IsolationMode: int32
    Origin: int32
    VirtualIfLuid: NET_LUID_LH
    VirtualIfIndex: uint32
    AllowLocalNd: uint8
    AttachedFlsnpiClients: uint32
    FlsnpiClientConfigErrors: uint32
    FlsnpiClientInjectErrors: uint64
    FlsnpiClientCloneErrors: uint64
    InFlsnpiIndicatedPackets: uint64
    InFlsnpiClientReturnedPackets: uint64
    InFlsnpiClientSilentlyDroppedPackets: uint64
    InFlsnpiClientDroppedPackets: uint64
    InFlsnpiClientInjectedPackets: uint64
    InFlsnpiClientClonedPackets: uint64
    OutFlsnpiIndicatedPackets: uint64
    OutFlsnpiClientReturnedPackets: uint64
    OutFlsnpiClientDroppedPackets: uint64
    OutFlsnpiClientSilentlyDroppedPackets: uint64
    OutFlsnpiClientInjectedPackets: uint64
    OutFlsnpiClientClonedPackets: uint64
    OutFlsnpiClientClonedPacketsForNbSplit: uint64
struct NET_LUID_LH
{
    ulong Value;
    _Info_e__Struct Info;
}

struct MIB_FL_VIRTUAL_INTERFACE_ROW
{
    ushort Family;
    NET_LUID_LH IfLuid;
    uint VirtualIfId;
    GUID CompartmentGuid;
    int IsolationMode;
    int Origin;
    NET_LUID_LH VirtualIfLuid;
    uint VirtualIfIndex;
    ubyte AllowLocalNd;
    uint AttachedFlsnpiClients;
    uint FlsnpiClientConfigErrors;
    ulong FlsnpiClientInjectErrors;
    ulong FlsnpiClientCloneErrors;
    ulong InFlsnpiIndicatedPackets;
    ulong InFlsnpiClientReturnedPackets;
    ulong InFlsnpiClientSilentlyDroppedPackets;
    ulong InFlsnpiClientDroppedPackets;
    ulong InFlsnpiClientInjectedPackets;
    ulong InFlsnpiClientClonedPackets;
    ulong OutFlsnpiIndicatedPackets;
    ulong OutFlsnpiClientReturnedPackets;
    ulong OutFlsnpiClientDroppedPackets;
    ulong OutFlsnpiClientSilentlyDroppedPackets;
    ulong OutFlsnpiClientInjectedPackets;
    ulong OutFlsnpiClientClonedPackets;
    ulong OutFlsnpiClientClonedPacketsForNbSplit;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MIB_FL_VIRTUAL_INTERFACE_ROW サイズ: 192 バイト(x64)
dim st, 48    ; 4byte整数×48(構造体サイズ 192 / 4 切り上げ)
; Family : ADDRESS_FAMILY (+0, 2byte)  wpoke st,0,値  /  値 = wpeek(st,0)
; IfLuid : NET_LUID_LH (+8, 8byte)  varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; VirtualIfId : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; CompartmentGuid : GUID (+20, 16byte)  varptr(st)+20 を基点に操作(16byte:入れ子/配列)
; IsolationMode : NET_FL_ISOLATION_MODE (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; Origin : NET_FL_VIRTUAL_INTERFACE_ORIGIN (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; VirtualIfLuid : NET_LUID_LH (+48, 8byte)  varptr(st)+48 を基点に操作(8byte:入れ子/配列)
; VirtualIfIndex : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; AllowLocalNd : BOOLEAN (+60, 1byte)  poke st,60,値  /  値 = peek(st,60)
; AttachedFlsnpiClients : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; FlsnpiClientConfigErrors : DWORD (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; FlsnpiClientInjectErrors : ULONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; FlsnpiClientCloneErrors : ULONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; InFlsnpiIndicatedPackets : ULONGLONG (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; InFlsnpiClientReturnedPackets : ULONGLONG (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; InFlsnpiClientSilentlyDroppedPackets : ULONGLONG (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; InFlsnpiClientDroppedPackets : ULONGLONG (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; InFlsnpiClientInjectedPackets : ULONGLONG (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; InFlsnpiClientClonedPackets : ULONGLONG (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; OutFlsnpiIndicatedPackets : ULONGLONG (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; OutFlsnpiClientReturnedPackets : ULONGLONG (+144, 8byte)  qpoke st,144,値 / qpeek(st,144)  ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; OutFlsnpiClientDroppedPackets : ULONGLONG (+152, 8byte)  qpoke st,152,値 / qpeek(st,152)  ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; OutFlsnpiClientSilentlyDroppedPackets : ULONGLONG (+160, 8byte)  qpoke st,160,値 / qpeek(st,160)  ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; OutFlsnpiClientInjectedPackets : ULONGLONG (+168, 8byte)  qpoke st,168,値 / qpeek(st,168)  ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; OutFlsnpiClientClonedPackets : ULONGLONG (+176, 8byte)  qpoke st,176,値 / qpeek(st,176)  ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; OutFlsnpiClientClonedPacketsForNbSplit : ULONGLONG (+184, 8byte)  qpoke st,184,値 / qpeek(st,184)  ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global GUID, pack=1
    #field int Data1
    #field short Data2
    #field short Data3
    #field byte Data4 8
#endstruct

#defstruct global MIB_FL_VIRTUAL_INTERFACE_ROW
    #field short Family
    #field byte IfLuid 8
    #field int VirtualIfId
    #field GUID CompartmentGuid
    #field int IsolationMode
    #field int Origin
    #field byte VirtualIfLuid 8
    #field int VirtualIfIndex
    #field bool1 AllowLocalNd
    #field int AttachedFlsnpiClients
    #field int FlsnpiClientConfigErrors
    #field int64 FlsnpiClientInjectErrors
    #field int64 FlsnpiClientCloneErrors
    #field int64 InFlsnpiIndicatedPackets
    #field int64 InFlsnpiClientReturnedPackets
    #field int64 InFlsnpiClientSilentlyDroppedPackets
    #field int64 InFlsnpiClientDroppedPackets
    #field int64 InFlsnpiClientInjectedPackets
    #field int64 InFlsnpiClientClonedPackets
    #field int64 OutFlsnpiIndicatedPackets
    #field int64 OutFlsnpiClientReturnedPackets
    #field int64 OutFlsnpiClientDroppedPackets
    #field int64 OutFlsnpiClientSilentlyDroppedPackets
    #field int64 OutFlsnpiClientInjectedPackets
    #field int64 OutFlsnpiClientClonedPackets
    #field int64 OutFlsnpiClientClonedPacketsForNbSplit
#endstruct

stdim st, MIB_FL_VIRTUAL_INTERFACE_ROW        ; NSTRUCT 変数を確保
st->Family = 100
mes "Family=" + st->Family
; ※union フィールドは byte 列で確保(NSTRUCT は union 非対応)。必要に応じ手動でアクセス。