ホーム › NetworkManagement.Ndis › NDIS_INTERFACE_INFORMATION
NDIS_INTERFACE_INFORMATION
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| ifOperStatus | NET_IF_OPER_STATUS | 4 | +0 | +0 | インタフェースの運用状態(NET_IF_OPER_STATUS)を示す。 |
| ifOperStatusFlags | DWORD | 4 | +4 | +4 | 運用状態に関する追加フラグである。 |
| MediaConnectState | NET_IF_MEDIA_CONNECT_STATE | 4 | +8 | +8 | メディアの接続状態(接続/切断)を示す列挙値である。 |
| MediaDuplexState | NET_IF_MEDIA_DUPLEX_STATE | 4 | +12 | +12 | メディアの全二重/半二重状態を示す列挙値である。 |
| ifMtu | DWORD | 4 | +16 | +16 | インタフェースの最大伝送単位(MTU)をバイト単位で示す。 |
| ifPromiscuousMode | BOOLEAN | 1 | +20 | +20 | プロミスキャスモードが有効かどうかを示すブール値である。 |
| ifDeviceWakeUpEnable | BOOLEAN | 1 | +21 | +21 | デバイスのウェイクアップが有効かどうかを示すブール値である。 |
| XmitLinkSpeed | ULONGLONG | 8 | +24 | +24 | 送信リンク速度をビット毎秒で示す。 |
| RcvLinkSpeed | ULONGLONG | 8 | +32 | +32 | 受信リンク速度をビット毎秒で示す。 |
| ifLastChange | ULONGLONG | 8 | +40 | +40 | インタフェース状態が最後に変化した時刻である。 |
| ifCounterDiscontinuityTime | ULONGLONG | 8 | +48 | +48 | カウンタが不連続になった(リセットされた)最後の時刻である。 |
| ifInUnknownProtos | ULONGLONG | 8 | +56 | +56 | 不明なプロトコルのため破棄された受信パケット数である。 |
| ifInDiscards | ULONGLONG | 8 | +64 | +64 | 受信側で破棄されたパケット数(誤りなし)である。 |
| ifInErrors | ULONGLONG | 8 | +72 | +72 | 誤りにより破棄された受信パケット数である。 |
| ifHCInOctets | ULONGLONG | 8 | +80 | +80 | 受信した総バイト数(高容量カウンタ)である。 |
| ifHCInUcastPkts | ULONGLONG | 8 | +88 | +88 | 受信したユニキャストパケット数(高容量カウンタ)である。 |
| ifHCInMulticastPkts | ULONGLONG | 8 | +96 | +96 | 受信したマルチキャストパケット数(高容量カウンタ)である。 |
| ifHCInBroadcastPkts | ULONGLONG | 8 | +104 | +104 | 受信したブロードキャストパケット数(高容量カウンタ)である。 |
| ifHCOutOctets | ULONGLONG | 8 | +112 | +112 | 送信した総バイト数(高容量カウンタ)である。 |
| ifHCOutUcastPkts | ULONGLONG | 8 | +120 | +120 | 送信したユニキャストパケット数(高容量カウンタ)である。 |
| ifHCOutMulticastPkts | ULONGLONG | 8 | +128 | +128 | 送信したマルチキャストパケット数(高容量カウンタ)である。 |
| ifHCOutBroadcastPkts | ULONGLONG | 8 | +136 | +136 | 送信したブロードキャストパケット数(高容量カウンタ)である。 |
| ifOutErrors | ULONGLONG | 8 | +144 | +144 | 誤りにより破棄された送信パケット数である。 |
| ifOutDiscards | ULONGLONG | 8 | +152 | +152 | 送信側で破棄されたパケット数(誤りなし)である。 |
| ifHCInUcastOctets | ULONGLONG | 8 | +160 | +160 | 受信したユニキャストバイト数(高容量カウンタ)である。 |
| ifHCInMulticastOctets | ULONGLONG | 8 | +168 | +168 | 受信したマルチキャストバイト数(高容量カウンタ)である。 |
| ifHCInBroadcastOctets | ULONGLONG | 8 | +176 | +176 | 受信したブロードキャストバイト数(高容量カウンタ)である。 |
| ifHCOutUcastOctets | ULONGLONG | 8 | +184 | +184 | 送信したユニキャストバイト数(高容量カウンタ)である。 |
| ifHCOutMulticastOctets | ULONGLONG | 8 | +192 | +192 | 送信したマルチキャストバイト数(高容量カウンタ)である。 |
| ifHCOutBroadcastOctets | ULONGLONG | 8 | +200 | +200 | 送信したブロードキャストバイト数(高容量カウンタ)である。 |
| CompartmentId | NET_IF_COMPARTMENT_ID | 4 | +208 | +208 | インタフェースが属するルーティングコンパートメントのIDである。 |
| SupportedStatistics | DWORD | 4 | +212 | +212 | サポートされる統計項目を示すビットマスクである。 |
各言語での定義
#include <windows.h>
// NDIS_INTERFACE_INFORMATION (x64 216 / x86 216 バイト)
typedef struct NDIS_INTERFACE_INFORMATION {
NET_IF_OPER_STATUS ifOperStatus;
DWORD ifOperStatusFlags;
NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
NET_IF_MEDIA_DUPLEX_STATE MediaDuplexState;
DWORD ifMtu;
BOOLEAN ifPromiscuousMode;
BOOLEAN ifDeviceWakeUpEnable;
ULONGLONG XmitLinkSpeed;
ULONGLONG RcvLinkSpeed;
ULONGLONG ifLastChange;
ULONGLONG ifCounterDiscontinuityTime;
ULONGLONG ifInUnknownProtos;
ULONGLONG ifInDiscards;
ULONGLONG ifInErrors;
ULONGLONG ifHCInOctets;
ULONGLONG ifHCInUcastPkts;
ULONGLONG ifHCInMulticastPkts;
ULONGLONG ifHCInBroadcastPkts;
ULONGLONG ifHCOutOctets;
ULONGLONG ifHCOutUcastPkts;
ULONGLONG ifHCOutMulticastPkts;
ULONGLONG ifHCOutBroadcastPkts;
ULONGLONG ifOutErrors;
ULONGLONG ifOutDiscards;
ULONGLONG ifHCInUcastOctets;
ULONGLONG ifHCInMulticastOctets;
ULONGLONG ifHCInBroadcastOctets;
ULONGLONG ifHCOutUcastOctets;
ULONGLONG ifHCOutMulticastOctets;
ULONGLONG ifHCOutBroadcastOctets;
NET_IF_COMPARTMENT_ID CompartmentId;
DWORD SupportedStatistics;
} NDIS_INTERFACE_INFORMATION;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NDIS_INTERFACE_INFORMATION
{
public int ifOperStatus;
public uint ifOperStatusFlags;
public int MediaConnectState;
public int MediaDuplexState;
public uint ifMtu;
[MarshalAs(UnmanagedType.U1)] public bool ifPromiscuousMode;
[MarshalAs(UnmanagedType.U1)] public bool ifDeviceWakeUpEnable;
public ulong XmitLinkSpeed;
public ulong RcvLinkSpeed;
public ulong ifLastChange;
public ulong ifCounterDiscontinuityTime;
public ulong ifInUnknownProtos;
public ulong ifInDiscards;
public ulong ifInErrors;
public ulong ifHCInOctets;
public ulong ifHCInUcastPkts;
public ulong ifHCInMulticastPkts;
public ulong ifHCInBroadcastPkts;
public ulong ifHCOutOctets;
public ulong ifHCOutUcastPkts;
public ulong ifHCOutMulticastPkts;
public ulong ifHCOutBroadcastPkts;
public ulong ifOutErrors;
public ulong ifOutDiscards;
public ulong ifHCInUcastOctets;
public ulong ifHCInMulticastOctets;
public ulong ifHCInBroadcastOctets;
public ulong ifHCOutUcastOctets;
public ulong ifHCOutMulticastOctets;
public ulong ifHCOutBroadcastOctets;
public uint CompartmentId;
public uint SupportedStatistics;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NDIS_INTERFACE_INFORMATION
Public ifOperStatus As Integer
Public ifOperStatusFlags As UInteger
Public MediaConnectState As Integer
Public MediaDuplexState As Integer
Public ifMtu As UInteger
<MarshalAs(UnmanagedType.U1)> Public ifPromiscuousMode As Boolean
<MarshalAs(UnmanagedType.U1)> Public ifDeviceWakeUpEnable As Boolean
Public XmitLinkSpeed As ULong
Public RcvLinkSpeed As ULong
Public ifLastChange As ULong
Public ifCounterDiscontinuityTime As ULong
Public ifInUnknownProtos As ULong
Public ifInDiscards As ULong
Public ifInErrors As ULong
Public ifHCInOctets As ULong
Public ifHCInUcastPkts As ULong
Public ifHCInMulticastPkts As ULong
Public ifHCInBroadcastPkts As ULong
Public ifHCOutOctets As ULong
Public ifHCOutUcastPkts As ULong
Public ifHCOutMulticastPkts As ULong
Public ifHCOutBroadcastPkts As ULong
Public ifOutErrors As ULong
Public ifOutDiscards As ULong
Public ifHCInUcastOctets As ULong
Public ifHCInMulticastOctets As ULong
Public ifHCInBroadcastOctets As ULong
Public ifHCOutUcastOctets As ULong
Public ifHCOutMulticastOctets As ULong
Public ifHCOutBroadcastOctets As ULong
Public CompartmentId As UInteger
Public SupportedStatistics As UInteger
End Structureimport ctypes
from ctypes import wintypes
class NDIS_INTERFACE_INFORMATION(ctypes.Structure):
_fields_ = [
("ifOperStatus", ctypes.c_int),
("ifOperStatusFlags", wintypes.DWORD),
("MediaConnectState", ctypes.c_int),
("MediaDuplexState", ctypes.c_int),
("ifMtu", wintypes.DWORD),
("ifPromiscuousMode", ctypes.c_byte),
("ifDeviceWakeUpEnable", ctypes.c_byte),
("XmitLinkSpeed", ctypes.c_ulonglong),
("RcvLinkSpeed", ctypes.c_ulonglong),
("ifLastChange", ctypes.c_ulonglong),
("ifCounterDiscontinuityTime", ctypes.c_ulonglong),
("ifInUnknownProtos", ctypes.c_ulonglong),
("ifInDiscards", ctypes.c_ulonglong),
("ifInErrors", ctypes.c_ulonglong),
("ifHCInOctets", ctypes.c_ulonglong),
("ifHCInUcastPkts", ctypes.c_ulonglong),
("ifHCInMulticastPkts", ctypes.c_ulonglong),
("ifHCInBroadcastPkts", ctypes.c_ulonglong),
("ifHCOutOctets", ctypes.c_ulonglong),
("ifHCOutUcastPkts", ctypes.c_ulonglong),
("ifHCOutMulticastPkts", ctypes.c_ulonglong),
("ifHCOutBroadcastPkts", ctypes.c_ulonglong),
("ifOutErrors", ctypes.c_ulonglong),
("ifOutDiscards", ctypes.c_ulonglong),
("ifHCInUcastOctets", ctypes.c_ulonglong),
("ifHCInMulticastOctets", ctypes.c_ulonglong),
("ifHCInBroadcastOctets", ctypes.c_ulonglong),
("ifHCOutUcastOctets", ctypes.c_ulonglong),
("ifHCOutMulticastOctets", ctypes.c_ulonglong),
("ifHCOutBroadcastOctets", ctypes.c_ulonglong),
("CompartmentId", wintypes.DWORD),
("SupportedStatistics", wintypes.DWORD),
]#[repr(C)]
pub struct NDIS_INTERFACE_INFORMATION {
pub ifOperStatus: i32,
pub ifOperStatusFlags: u32,
pub MediaConnectState: i32,
pub MediaDuplexState: i32,
pub ifMtu: u32,
pub ifPromiscuousMode: u8,
pub ifDeviceWakeUpEnable: u8,
pub XmitLinkSpeed: u64,
pub RcvLinkSpeed: u64,
pub ifLastChange: u64,
pub ifCounterDiscontinuityTime: u64,
pub ifInUnknownProtos: u64,
pub ifInDiscards: u64,
pub ifInErrors: u64,
pub ifHCInOctets: u64,
pub ifHCInUcastPkts: u64,
pub ifHCInMulticastPkts: u64,
pub ifHCInBroadcastPkts: u64,
pub ifHCOutOctets: u64,
pub ifHCOutUcastPkts: u64,
pub ifHCOutMulticastPkts: u64,
pub ifHCOutBroadcastPkts: u64,
pub ifOutErrors: u64,
pub ifOutDiscards: u64,
pub ifHCInUcastOctets: u64,
pub ifHCInMulticastOctets: u64,
pub ifHCInBroadcastOctets: u64,
pub ifHCOutUcastOctets: u64,
pub ifHCOutMulticastOctets: u64,
pub ifHCOutBroadcastOctets: u64,
pub CompartmentId: u32,
pub SupportedStatistics: u32,
}import "golang.org/x/sys/windows"
type NDIS_INTERFACE_INFORMATION struct {
ifOperStatus int32
ifOperStatusFlags uint32
MediaConnectState int32
MediaDuplexState int32
ifMtu uint32
ifPromiscuousMode byte
ifDeviceWakeUpEnable byte
XmitLinkSpeed uint64
RcvLinkSpeed uint64
ifLastChange uint64
ifCounterDiscontinuityTime uint64
ifInUnknownProtos uint64
ifInDiscards uint64
ifInErrors uint64
ifHCInOctets uint64
ifHCInUcastPkts uint64
ifHCInMulticastPkts uint64
ifHCInBroadcastPkts uint64
ifHCOutOctets uint64
ifHCOutUcastPkts uint64
ifHCOutMulticastPkts uint64
ifHCOutBroadcastPkts uint64
ifOutErrors uint64
ifOutDiscards uint64
ifHCInUcastOctets uint64
ifHCInMulticastOctets uint64
ifHCInBroadcastOctets uint64
ifHCOutUcastOctets uint64
ifHCOutMulticastOctets uint64
ifHCOutBroadcastOctets uint64
CompartmentId uint32
SupportedStatistics uint32
}type
NDIS_INTERFACE_INFORMATION = record
ifOperStatus: Integer;
ifOperStatusFlags: DWORD;
MediaConnectState: Integer;
MediaDuplexState: Integer;
ifMtu: DWORD;
ifPromiscuousMode: ByteBool;
ifDeviceWakeUpEnable: ByteBool;
XmitLinkSpeed: UInt64;
RcvLinkSpeed: UInt64;
ifLastChange: UInt64;
ifCounterDiscontinuityTime: UInt64;
ifInUnknownProtos: UInt64;
ifInDiscards: UInt64;
ifInErrors: UInt64;
ifHCInOctets: UInt64;
ifHCInUcastPkts: UInt64;
ifHCInMulticastPkts: UInt64;
ifHCInBroadcastPkts: UInt64;
ifHCOutOctets: UInt64;
ifHCOutUcastPkts: UInt64;
ifHCOutMulticastPkts: UInt64;
ifHCOutBroadcastPkts: UInt64;
ifOutErrors: UInt64;
ifOutDiscards: UInt64;
ifHCInUcastOctets: UInt64;
ifHCInMulticastOctets: UInt64;
ifHCInBroadcastOctets: UInt64;
ifHCOutUcastOctets: UInt64;
ifHCOutMulticastOctets: UInt64;
ifHCOutBroadcastOctets: UInt64;
CompartmentId: DWORD;
SupportedStatistics: DWORD;
end;const NDIS_INTERFACE_INFORMATION = extern struct {
ifOperStatus: i32,
ifOperStatusFlags: u32,
MediaConnectState: i32,
MediaDuplexState: i32,
ifMtu: u32,
ifPromiscuousMode: u8,
ifDeviceWakeUpEnable: u8,
XmitLinkSpeed: u64,
RcvLinkSpeed: u64,
ifLastChange: u64,
ifCounterDiscontinuityTime: u64,
ifInUnknownProtos: u64,
ifInDiscards: u64,
ifInErrors: u64,
ifHCInOctets: u64,
ifHCInUcastPkts: u64,
ifHCInMulticastPkts: u64,
ifHCInBroadcastPkts: u64,
ifHCOutOctets: u64,
ifHCOutUcastPkts: u64,
ifHCOutMulticastPkts: u64,
ifHCOutBroadcastPkts: u64,
ifOutErrors: u64,
ifOutDiscards: u64,
ifHCInUcastOctets: u64,
ifHCInMulticastOctets: u64,
ifHCInBroadcastOctets: u64,
ifHCOutUcastOctets: u64,
ifHCOutMulticastOctets: u64,
ifHCOutBroadcastOctets: u64,
CompartmentId: u32,
SupportedStatistics: u32,
};type
NDIS_INTERFACE_INFORMATION {.bycopy.} = object
ifOperStatus: int32
ifOperStatusFlags: uint32
MediaConnectState: int32
MediaDuplexState: int32
ifMtu: uint32
ifPromiscuousMode: uint8
ifDeviceWakeUpEnable: uint8
XmitLinkSpeed: uint64
RcvLinkSpeed: uint64
ifLastChange: uint64
ifCounterDiscontinuityTime: uint64
ifInUnknownProtos: uint64
ifInDiscards: uint64
ifInErrors: uint64
ifHCInOctets: uint64
ifHCInUcastPkts: uint64
ifHCInMulticastPkts: uint64
ifHCInBroadcastPkts: uint64
ifHCOutOctets: uint64
ifHCOutUcastPkts: uint64
ifHCOutMulticastPkts: uint64
ifHCOutBroadcastPkts: uint64
ifOutErrors: uint64
ifOutDiscards: uint64
ifHCInUcastOctets: uint64
ifHCInMulticastOctets: uint64
ifHCInBroadcastOctets: uint64
ifHCOutUcastOctets: uint64
ifHCOutMulticastOctets: uint64
ifHCOutBroadcastOctets: uint64
CompartmentId: uint32
SupportedStatistics: uint32struct NDIS_INTERFACE_INFORMATION
{
int ifOperStatus;
uint ifOperStatusFlags;
int MediaConnectState;
int MediaDuplexState;
uint ifMtu;
ubyte ifPromiscuousMode;
ubyte ifDeviceWakeUpEnable;
ulong XmitLinkSpeed;
ulong RcvLinkSpeed;
ulong ifLastChange;
ulong ifCounterDiscontinuityTime;
ulong ifInUnknownProtos;
ulong ifInDiscards;
ulong ifInErrors;
ulong ifHCInOctets;
ulong ifHCInUcastPkts;
ulong ifHCInMulticastPkts;
ulong ifHCInBroadcastPkts;
ulong ifHCOutOctets;
ulong ifHCOutUcastPkts;
ulong ifHCOutMulticastPkts;
ulong ifHCOutBroadcastPkts;
ulong ifOutErrors;
ulong ifOutDiscards;
ulong ifHCInUcastOctets;
ulong ifHCInMulticastOctets;
ulong ifHCInBroadcastOctets;
ulong ifHCOutUcastOctets;
ulong ifHCOutMulticastOctets;
ulong ifHCOutBroadcastOctets;
uint CompartmentId;
uint SupportedStatistics;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NDIS_INTERFACE_INFORMATION サイズ: 216 バイト(x64)
dim st, 54 ; 4byte整数×54(構造体サイズ 216 / 4 切り上げ)
; ifOperStatus : NET_IF_OPER_STATUS (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; ifOperStatusFlags : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; MediaConnectState : NET_IF_MEDIA_CONNECT_STATE (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; MediaDuplexState : NET_IF_MEDIA_DUPLEX_STATE (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; ifMtu : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; ifPromiscuousMode : BOOLEAN (+20, 1byte) poke st,20,値 / 値 = peek(st,20)
; ifDeviceWakeUpEnable : BOOLEAN (+21, 1byte) poke st,21,値 / 値 = peek(st,21)
; XmitLinkSpeed : ULONGLONG (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; RcvLinkSpeed : ULONGLONG (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; ifLastChange : ULONGLONG (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ifCounterDiscontinuityTime : ULONGLONG (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; ifInUnknownProtos : ULONGLONG (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; ifInDiscards : ULONGLONG (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; ifInErrors : ULONGLONG (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; ifHCInOctets : ULONGLONG (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; ifHCInUcastPkts : ULONGLONG (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; ifHCInMulticastPkts : ULONGLONG (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; ifHCInBroadcastPkts : ULONGLONG (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; ifHCOutOctets : ULONGLONG (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; ifHCOutUcastPkts : ULONGLONG (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; ifHCOutMulticastPkts : ULONGLONG (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; ifHCOutBroadcastPkts : ULONGLONG (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; ifOutErrors : ULONGLONG (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; ifOutDiscards : ULONGLONG (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; ifHCInUcastOctets : ULONGLONG (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; ifHCInMulticastOctets : ULONGLONG (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; ifHCInBroadcastOctets : ULONGLONG (+176, 8byte) qpoke st,176,値 / qpeek(st,176) ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; ifHCOutUcastOctets : ULONGLONG (+184, 8byte) qpoke st,184,値 / qpeek(st,184) ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; ifHCOutMulticastOctets : ULONGLONG (+192, 8byte) qpoke st,192,値 / qpeek(st,192) ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; ifHCOutBroadcastOctets : ULONGLONG (+200, 8byte) qpoke st,200,値 / qpeek(st,200) ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; CompartmentId : NET_IF_COMPARTMENT_ID (+208, 4byte) st.52 = 値 / 値 = st.52 (lpoke/lpeek も可)
; SupportedStatistics : DWORD (+212, 4byte) st.53 = 値 / 値 = st.53 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global NDIS_INTERFACE_INFORMATION
#field int ifOperStatus
#field int ifOperStatusFlags
#field int MediaConnectState
#field int MediaDuplexState
#field int ifMtu
#field bool1 ifPromiscuousMode
#field bool1 ifDeviceWakeUpEnable
#field int64 XmitLinkSpeed
#field int64 RcvLinkSpeed
#field int64 ifLastChange
#field int64 ifCounterDiscontinuityTime
#field int64 ifInUnknownProtos
#field int64 ifInDiscards
#field int64 ifInErrors
#field int64 ifHCInOctets
#field int64 ifHCInUcastPkts
#field int64 ifHCInMulticastPkts
#field int64 ifHCInBroadcastPkts
#field int64 ifHCOutOctets
#field int64 ifHCOutUcastPkts
#field int64 ifHCOutMulticastPkts
#field int64 ifHCOutBroadcastPkts
#field int64 ifOutErrors
#field int64 ifOutDiscards
#field int64 ifHCInUcastOctets
#field int64 ifHCInMulticastOctets
#field int64 ifHCInBroadcastOctets
#field int64 ifHCOutUcastOctets
#field int64 ifHCOutMulticastOctets
#field int64 ifHCOutBroadcastOctets
#field int CompartmentId
#field int SupportedStatistics
#endstruct
stdim st, NDIS_INTERFACE_INFORMATION ; NSTRUCT 変数を確保
st->ifOperStatus = 100
mes "ifOperStatus=" + st->ifOperStatus