ホーム › NetworkManagement.IpHelper › MIB_FL_VIRTUAL_INTERFACE_ROW
MIB_FL_VIRTUAL_INTERFACE_ROW
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Family | ADDRESS_FAMILY | 2 | +0 | +0 | アドレスファミリ(AF_INET/AF_INET6)を示す。 |
| IfLuid | NET_LUID_LH | 8 | +8 | +8 | 基礎となる物理インタフェースのLUID(NET_LUID_LH)である。 |
| VirtualIfId | DWORD | 4 | +16 | +16 | 仮想インタフェースの識別子である。 |
| CompartmentGuid | GUID | 16 | +20 | +20 | 仮想インタフェースが属するコンパートメントのGUIDである。 |
| IsolationMode | NET_FL_ISOLATION_MODE | 4 | +36 | +36 | 分離モード(NET_FL_ISOLATION_MODE)を示す。 |
| Origin | NET_FL_VIRTUAL_INTERFACE_ORIGIN | 4 | +40 | +40 | 仮想インタフェースの出所(NET_FL_VIRTUAL_INTERFACE_ORIGIN)を示す。 |
| VirtualIfLuid | NET_LUID_LH | 8 | +48 | +48 | 仮想インタフェースのLUID(NET_LUID_LH)である。 |
| VirtualIfIndex | DWORD | 4 | +56 | +56 | 仮想インタフェースのインデックスである。 |
| AllowLocalNd | BOOLEAN | 1 | +60 | +60 | ローカル近隣探索(ND)を許可するかを示すブール値である。 |
| AttachedFlsnpiClients | DWORD | 4 | +64 | +64 | アタッチされているFLSNPIクライアントの数である。 |
| FlsnpiClientConfigErrors | DWORD | 4 | +68 | +68 | FLSNPIクライアント構成エラーの数である。 |
| FlsnpiClientInjectErrors | ULONGLONG | 8 | +72 | +72 | FLSNPIクライアントのパケット注入エラー数である。 |
| FlsnpiClientCloneErrors | ULONGLONG | 8 | +80 | +80 | FLSNPIクライアントのパケット複製エラー数である。 |
| InFlsnpiIndicatedPackets | ULONGLONG | 8 | +88 | +88 | 受信方向でFLSNPIに通知されたパケット数である。 |
| InFlsnpiClientReturnedPackets | ULONGLONG | 8 | +96 | +96 | 受信方向でクライアントから返却されたパケット数である。 |
| InFlsnpiClientSilentlyDroppedPackets | ULONGLONG | 8 | +104 | +104 | 受信方向でクライアントが暗黙に破棄したパケット数である。 |
| InFlsnpiClientDroppedPackets | ULONGLONG | 8 | +112 | +112 | 受信方向でクライアントが破棄したパケット数である。 |
| InFlsnpiClientInjectedPackets | ULONGLONG | 8 | +120 | +120 | 受信方向でクライアントが注入したパケット数である。 |
| InFlsnpiClientClonedPackets | ULONGLONG | 8 | +128 | +128 | 受信方向でクライアントが複製したパケット数である。 |
| OutFlsnpiIndicatedPackets | ULONGLONG | 8 | +136 | +136 | 送信方向でFLSNPIに通知されたパケット数である。 |
| OutFlsnpiClientReturnedPackets | ULONGLONG | 8 | +144 | +144 | 送信方向でクライアントから返却されたパケット数である。 |
| OutFlsnpiClientDroppedPackets | ULONGLONG | 8 | +152 | +152 | 送信方向でクライアントが破棄したパケット数である。 |
| OutFlsnpiClientSilentlyDroppedPackets | ULONGLONG | 8 | +160 | +160 | 送信方向でクライアントが暗黙に破棄したパケット数である。 |
| OutFlsnpiClientInjectedPackets | ULONGLONG | 8 | +168 | +168 | 送信方向でクライアントが注入したパケット数である。 |
| OutFlsnpiClientClonedPackets | ULONGLONG | 8 | +176 | +176 | 送信方向でクライアントが複製したパケット数である。 |
| OutFlsnpiClientClonedPacketsForNbSplit | ULONGLONG | 8 | +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 Structureimport 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: uint64struct 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 非対応)。必要に応じ手動でアクセス。