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

MIB_IF_ROW2

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

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

フィールド

フィールドサイズx64x86説明
InterfaceLuidNET_LUID_LH8+0+0ネットワークインターフェイスのローカル一意識別子 (LUID) です。
InterfaceIndexDWORD4+8+8ネットワークインターフェイスを識別するインデックスです。このインデックス値は、ネットワークアダプターを無効にしてから再度有効にすると変化する場合があるため、永続的な値とみなすべきではありません。
InterfaceGuidGUID16+12+12ネットワークインターフェイスの GUID です。
AliasWCHAR514+28+28ネットワークインターフェイスのエイリアス名を含む、NULL で終わる Unicode 文字列です。
DescriptionWCHAR514+542+542ネットワークインターフェイスの説明を含む、NULL で終わる Unicode 文字列です。
PhysicalAddressLengthDWORD4+1056+1056PhysicalAddress メンバーで指定される物理ハードウェアアドレスの長さ (バイト単位) です。
PhysicalAddressBYTE32+1060+1060このネットワークインターフェイスのアダプターの物理ハードウェアアドレスです。
PermanentPhysicalAddressBYTE32+1092+1092このネットワークインターフェイスのアダプターの永続的な物理ハードウェアアドレスです。
MtuDWORD4+1124+1124このネットワークインターフェイスの最大転送単位 (MTU) のサイズ (バイト単位) です。
TypeDWORD4+1128+1128

Internet Assigned Names Authority (IANA) によって定義されているインターフェイスの種類です。詳細については、http://www.iana.org/assignments/ianaiftype-mib を参照してください。インターフェイスの種類として指定できる値は、Ipifcons.h ヘッダーファイルに列挙されています。

次の表は、インターフェイスの種類の代表的な値を示します。ただし、これ以外にも多くの値が存在します。

意味
IF_TYPE_OTHER
1
その他の種類のネットワークインターフェイスです。
IF_TYPE_ETHERNET_CSMACD
6
イーサネットのネットワークインターフェイスです。
IF_TYPE_ISO88025_TOKENRING
9
トークンリングのネットワークインターフェイスです。
IF_TYPE_FDDI
15
Fiber Distributed Data Interface (FDDI) のネットワークインターフェイスです。
IF_TYPE_PPP
23
PPP のネットワークインターフェイスです。
IF_TYPE_SOFTWARE_LOOPBACK
24
ソフトウェアループバックのネットワークインターフェイスです。
IF_TYPE_ATM
37
ATM のネットワークインターフェイスです。
IF_TYPE_IEEE80211
71
IEEE 802.11 ワイヤレスのネットワークインターフェイスです。
IF_TYPE_TUNNEL
131
トンネル型カプセル化のネットワークインターフェイスです。
IF_TYPE_IEEE1394
144
IEEE 1394 (Firewire) 高性能シリアルバスのネットワークインターフェイスです。
IF_TYPE_IEEE80216_WMAN
237
WiMax デバイス向けのモバイルブロードバンドインターフェイスです。
メモ このインターフェイスの種類は、Windows 7、Windows Server 2008 R2 以降でサポートされます。
IF_TYPE_WWANPP
243
GSM ベースのデバイス向けのモバイルブロードバンドインターフェイスです。
メモ このインターフェイスの種類は、Windows 7、Windows Server 2008 R2 以降でサポートされます。
IF_TYPE_WWANPP2
244
CDMA ベースのデバイス向けのモバイルブロードバンドインターフェイスです。
メモ このインターフェイスの種類は、Windows 7、Windows Server 2008 R2 以降でサポートされます。
TunnelTypeTUNNEL_TYPE4+1132+1132

Type メンバーが IF_TYPE_TUNNEL である場合に、トンネルで使用されるカプセル化方式です。トンネルの種類は Internet Assigned Names Authority (IANA) によって定義されています。詳細については、http://www.iana.org/assignments/ianaiftype-mib を参照してください。このメンバーには、Ifdef.h ヘッダーファイルで定義されている TUNNEL_TYPE 列挙型の値のいずれかを指定できます。

意味
TUNNEL_TYPE_NONE
0
トンネルではありません。
TUNNEL_TYPE_OTHER
1
以下のいずれのトンネルの種類にも該当しません。
TUNNEL_TYPE_DIRECT
2
パケットは中間ヘッダーを持たずに通常の IP ヘッダー内に直接カプセル化され、リモートのトンネルエンドポイントへユニキャストされます。
TUNNEL_TYPE_6TO4
11
IPv6 パケットは中間ヘッダーを持たずに IPv4 ヘッダー内に直接カプセル化され、6to4 プロトコルによって決定される宛先へユニキャストされます。
TUNNEL_TYPE_ISATAP
13
IPv6 パケットは中間ヘッダーを持たずに IPv4 ヘッダー内に直接カプセル化され、ISATAP プロトコルによって決定される宛先へユニキャストされます。
TUNNEL_TYPE_TEREDO
14
Teredo によるカプセル化です。
MediaTypeNDIS_MEDIUM4+1136+1136

インターフェイスの NDIS メディアの種類です。このメンバーには、Ntddndis.h ヘッダーファイルで定義されている NDIS_MEDIUM 列挙型の値のいずれかを指定できます。

意味
NdisMedium802_3
0
イーサネット (802.3) ネットワークです。
NdisMedium802_5
1
トークンリング (802.5) ネットワークです。
NdisMediumFddi
2
Fiber Distributed Data Interface (FDDI) ネットワークです。
NdisMediumWan
3
広域ネットワーク (WAN) です。この種類は、さまざまな形態のポイントツーポイント NIC および WAN NIC のほか、バインドの確立後にプロトコルドライバーと下位のドライバーとの間でネゴシエートする必要のある、可変のアドレス形式やヘッダー形式も対象とします。
NdisMediumLocalTalk
4
LocalTalk ネットワークです。
NdisMediumDix
5
ドライバーが DIX イーサネットヘッダー形式を使用するイーサネットネットワークです。
NdisMediumArcnetRaw
6
ARCNET ネットワークです。
NdisMediumArcnet878_2
7
ARCNET (878.2) ネットワークです。
NdisMediumAtm
8
ATM ネットワークです。コネクション指向のクライアントプロトコルドライバーは、この値を返す下位のミニポートドライバーに自身をバインドできます。それ以外の場合、従来のプロトコルドライバーはシステム提供の LanE 中間ドライバーにバインドされます。LanE ドライバーは、ネットワーク管理者による構成に応じて、自身のメディアの種類を NdisMedium802_3 または NdisMedium802_5 のいずれかとして報告します。
NdisMediumWirelessWan
9
ワイヤレスネットワークです。ワイヤレス LAN (WLAN) またはワイヤレス WAN (WWAN) のパケットをサポートする NDIS 5.X のミニポートドライバーは、この NDIS メディアの種類を使用せず、メディアの種類を NdisMedium802_3 として宣言し、上位の NDIS ドライバーに対してイーサネットをエミュレートします。
メモ このメディアの種類は、Windows 7、Windows Server 2008 R2 以降でのみサポートされ、モバイルブロードバンドに使用できます。
NdisMediumIrda
10
赤外線 (IrDA) ネットワークです。
NdisMediumBpc
11
ブロードキャスト PC ネットワークです。
NdisMediumCoWan
12
コネクション指向環境における広域ネットワークです。
NdisMedium1394
13
IEEE 1394 (FireWire) ネットワークです。
NdisMediumInfiniBand
14
InfiniBand ネットワークです。
NdisMediumTunnel
15
トンネルネットワークです。
メモ このメディアの種類は、Windows Vista、Windows Server 2008 以降でサポートされます。
NdisMediumNative802_11
16
ネイティブ IEEE 802.11 ネットワークです。
メモ このメディアの種類は、Windows Vista、Windows Server 2008 以降でサポートされます。
NdisMediumLoopback
17
NDIS ループバックネットワークです。
メモ このメディアの種類は、Windows Vista、Windows Server 2008 以降でサポートされます。
NdisMediumWiMax
18
WiMax ネットワークです。
メモ このメディアの種類は、Windows 7、Windows Server 2008 R2 以降でサポートされます。
PhysicalMediumTypeNDIS_PHYSICAL_MEDIUM4+1140+1140

NDIS の物理メディアの種類です。このメンバーには、Ntddndis.h ヘッダーファイルで定義されている NDIS_PHYSICAL_MEDIUM 列挙型の値のいずれかを指定できます。

意味
NdisPhysicalMediumUnspecified
0
物理メディアが以下のいずれの値にも該当しません。たとえば、一方向の衛星フィードは指定なしの物理メディアです。
NdisPhysicalMediumWirelessLan
1
802.11 インターフェイスに準拠するミニポートドライバーを介して、ワイヤレス LAN ネットワーク上でパケットが転送されます。
NdisPhysicalMediumCableModem
2
DOCSIS ベースのケーブルネットワーク上でパケットが転送されます。
NdisPhysicalMediumPhoneLine
3
標準の電話回線上でパケットが転送されます。これには、たとえば HomePNA メディアが含まれます。
NdisPhysicalMediumPowerLine
4
配電システムに接続された配線上でパケットが転送されます。
NdisPhysicalMediumDSL
5
デジタル加入者線 (DSL) ネットワーク上でパケットが転送されます。これには、たとえば ADSL、UADSL (G.Lite)、SDSL が含まれます。
NdisPhysicalMediumFibreChannel
6
ファイバーチャネルの相互接続上でパケットが転送されます。
NdisPhysicalMedium1394
7
IEEE 1394 バス上でパケットが転送されます。
NdisPhysicalMediumWirelessWan
8
ワイヤレス WAN リンク上でパケットが転送されます。これには、たとえば CDPD、CDMA、GSM、GPRS をサポートするモバイルブロードバンドデバイスが含まれます。
NdisPhysicalMediumNative802_11
9
ネイティブ 802.11 インターフェイスに準拠するミニポートドライバーを介して、ワイヤレス LAN ネットワーク上でパケットが転送されます。
メモ ネイティブ 802.11 インターフェイスは、NDIS 6.0 以降のバージョンでサポートされます。
NdisPhysicalMediumBluetooth
10
Bluetooth ネットワーク上でパケットが転送されます。Bluetooth は 2.4 GHz 帯を使用する近距離無線技術です。
NdisPhysicalMediumInfiniband
11
Infiniband の相互接続上でパケットが転送されます。
NdisPhysicalMediumWiMax
12
WiMax ネットワーク上でパケットが転送されます。
NdisPhysicalMediumUWB
13
超広帯域 (UWB) ネットワーク上でパケットが転送されます。
NdisPhysicalMedium802_3
14
イーサネット (802.3) ネットワーク上でパケットが転送されます。
NdisPhysicalMedium802_5
15
トークンリング (802.5) ネットワーク上でパケットが転送されます。
NdisPhysicalMediumIrda
16
赤外線 (IrDA) ネットワーク上でパケットが転送されます。
NdisPhysicalMediumWiredWAN
17
有線 WAN ネットワーク上でパケットが転送されます。
NdisPhysicalMediumWiredCoWan
18
コネクション指向環境における広域ネットワーク上でパケットが転送されます。
NdisPhysicalMediumOther
19
他の指定可能な値では表されないネットワーク上でパケットが転送されます。
AccessTypeNET_IF_ACCESS_TYPE4+1144+1144

インターフェイスのアクセスの種類です。このメンバーには、Ifdef.h ヘッダーファイルで定義されている NET_IF_ACCESS_TYPE 列挙型の値のいずれかを指定できます。

意味
NET_IF_ACCESS_LOOPBACK
1
ループバックのアクセスの種類です。このアクセスの種類は、インターフェイスが送信データを受信データとしてループバックすることを示します。
NET_IF_ACCESS_BROADCAST
2
イーサネットを含む LAN のアクセスの種類です。このアクセスの種類は、インターフェイスがマルチキャストまたはブロードキャストのサービスをネイティブにサポートすることを示します。
メモ MediaTypeNdisMedium802_3 であるモバイルブロードバンドインターフェイスは、このアクセスの種類を使用します。
NET_IF_ACCESS_POINT_TO_POINT
3
非ブロードキャストマルチアクセス (NBMA) インターフェイスを除く、CoNDIS/WAN をサポートするポイントツーポイントのアクセスです。
メモ MediaTypeNdisMediumWirelessWan であるモバイルブロードバンドインターフェイスは、このアクセスの種類を使用します。
NET_IF_ACCESS_POINT_TO_MULTI_POINT
4
"RAS Internal" インターフェイスやネイティブ (非 LANE) ATM を含む、非ブロードキャストマルチアクセス (NBMA) メディアをサポートするポイントツーマルチポイントのアクセスです。
NET_IF_ACCESS_MAXIMUM
5
NET_IF_ACCESS_TYPE 列挙型で取り得る最大値です。これは AccessType メンバーの正当な値ではありません。
DirectionTypeNET_IF_DIRECTION_TYPE4+1148+1148

インターフェイスの方向の種類です。このメンバーには、Ifdef.h ヘッダーファイルで定義されている NET_IF_DIRECTION_TYPE 列挙型の値のいずれかを指定できます。

意味
NET_IF_DIRECTION_SENDRECEIVE
0
送受信の方向の種類です。この方向の種類は、NDIS ネットワークインターフェイスがデータを送信および受信できることを示します。
NET_IF_DIRECTION_SENDONLY
1
送信専用の方向の種類です。この方向の種類は、NDIS ネットワークインターフェイスがデータの送信のみを行えることを示します。
NET_IF_DIRECTION_RECEIVEONLY
2
受信専用の方向の種類です。この方向の種類は、NDIS ネットワークインターフェイスがデータの受信のみを行えることを示します。
NET_IF_DIRECTION_MAXIMUM
3
NET_IF_DIRECTION_TYPE 列挙型で取り得る最大値です。これは DirectionType メンバーの正当な値ではありません。
InterfaceAndOperStatusFlags_InterfaceAndOperStatusFlags_e__Struct1+1152+1152インターフェイスに関する情報を提供するフラグのセットです。これらのフラグはビット単位のOR演算で組み合わされます。いずれのフラグも該当しない場合、このメンバーは 0 に設定されます。
OperStatusIF_OPER_STATUS4+1156+1156

RFC 2863 で IfOperStatus として定義されている、インターフェイスの動作状態です。詳細については、http://www.ietf.org/rfc/rfc2863.txt を参照してください。このメンバーには、Ifdef.h ヘッダーファイルで定義されている IF_OPER_STATUS 列挙型の値のいずれかを指定できます。

意味
IfOperStatusUp
1
インターフェイスは稼働しており、パケットを転送できます。
IfOperStatusDown
2
インターフェイスは停止しており、パケットを転送できる状態ではありません。IfOperStatusDown 状態には、AdminStatus メンバーの値に応じて 2 つの意味があります。

AdminStatusNET_IF_ADMIN_STATUS_DOWN に設定されておらず、ifOperStatusIfOperStatusDown に設定されている場合は、インターフェイスに障害状態が存在すると推定されます。

AdminStatusIfOperStatusDown に設定されている場合、ifOperStatus も通常は IfOperStatusDown または IfOperStatusNotPresent に設定され、必ずしもインターフェイスに障害状態があるとは限りません。

IfOperStatusTesting
3
インターフェイスはテストモードです。
IfOperStatusUnknown
4
インターフェイスの動作状態は不明です。
IfOperStatusDormant
5
インターフェイスは実際にはパケットを転送できる状態 (稼働状態) ではありませんが、何らかの外部イベントを待機する保留状態にあります。オンデマンドのインターフェイスでは、この新しい状態は、インターフェイスを IfOperStatusUp 状態にするイベントを待機している状況を表します。
IfOperStatusNotPresent
6
IfOperStatusDown 状態をさらに詳細化した状態で、該当するインターフェイスが停止しているのは、管理対象システム内に何らかのコンポーネント (通常はハードウェアデバイス) が存在しないことが原因であることを示します。
IfOperStatusLowerLayerDown
7
IfOperStatusDown 状態をさらに詳細化した状態です。この新しい状態は、このインターフェイスが 1 つ以上の他のインターフェイス上で動作しており、それらの下位層インターフェイスのうち 1 つ以上が停止していることが原因で、このインターフェイスが停止していることを示します。
AdminStatusNET_IF_ADMIN_STATUS4+1160+1160

RFC 2863 で定義されている、インターフェイスの管理状態です。詳細については、http://www.ietf.org/rfc/rfc2863.txt を参照してください。このメンバーには、Ifdef.h ヘッダーファイルで定義されている NET_IF_ADMIN_STATUS 列挙型の値のいずれかを指定できます。

意味
NET_IF_ADMIN_STATUS_UP
1
インターフェイスは初期化され、有効になっています。ただし、ネットワークデータを送受信できるかどうかはインターフェイスの動作状態に依存するため、必ずしも送受信の準備ができているとは限りません。
NET_IF_ADMIN_STATUS_DOWN
2
インターフェイスは停止しており、このインターフェイスを使用してネットワークデータを送受信することはできません。
NET_IF_ADMIN_STATUS_TESTING
3
インターフェイスはテストモードであり、ネットワークデータを送受信できません。
MediaConnectStateNET_IF_MEDIA_CONNECT_STATE4+1164+1164

インターフェイスの接続状態です。このメンバーには、Ifdef.h ヘッダーファイルで定義されている NET_IF_MEDIA_CONNECT_STATE 列挙型の値のいずれかを指定できます。

意味
MediaConnectStateUnknown
0
インターフェイスの接続状態は不明です。
MediaConnectStateConnected
1
インターフェイスはネットワークに接続されています。
MediaConnectStateDisconnected
2
インターフェイスはネットワークに接続されていません。
NetworkGuidGUID16+1168+1168インターフェイスが属するネットワークに関連付けられている GUID です。
ConnectionTypeNET_IF_CONNECTION_TYPE4+1184+1184

NDIS ネットワークインターフェイスの接続の種類です。このメンバーには、Ifdef.h ヘッダーファイルで定義されている NET_IF_CONNECTION_TYPE 列挙型の値のいずれかを指定できます。

意味
NET_IF_CONNECTION_DEDICATED
1
接続の種類は専用です。この接続は、メディアセンスが TRUE のときに自動的に確立されます。たとえば、イーサネット接続は専用です。
NET_IF_CONNECTION_PASSIVE
2
接続の種類はパッシブです。リモート側がローカルステーションへの接続を確立する必要があります。たとえば、RAS インターフェイスはパッシブです。
NET_IF_CONNECTION_DEMAND
3
接続の種類はデマンドダイヤルです。この種類の接続は、ローカル側の動作 (たとえばパケットの送信) に応じて確立されます。
NET_IF_CONNECTION_MAXIMUM
4
NET_IF_CONNECTION_TYPE 列挙型で取り得る最大値です。これは ConnectionType メンバーの正当な値ではありません。
TransmitLinkSpeedULONGLONG8+1192+1192送信リンクの速度 (ビット/秒) です。
ReceiveLinkSpeedULONGLONG8+1200+1200受信リンクの速度 (ビット/秒) です。
InOctetsULONGLONG8+1208+1208このインターフェイスを通じてエラーなく受信されたデータのオクテット数です。この値には、ユニキャスト、ブロードキャスト、マルチキャストの各パケットに含まれるオクテットが含まれます。
InUcastPktsULONGLONG8+1216+1216このインターフェイスを通じてエラーなく受信されたユニキャストパケットの数です。
InNUcastPktsULONGLONG8+1224+1224このインターフェイスを通じてエラーなく受信された非ユニキャストパケットの数です。この値には、ブロードキャストパケットとマルチキャストパケットが含まれます。
InDiscardsULONGLONG8+1232+1232エラーは検出されなかったものの、上位層のプロトコルへ配信されないようにするために破棄することが選択された受信パケットの数です。
InErrorsULONGLONG8+1240+1240エラーのために破棄された受信パケットの数です。
InUnknownProtosULONGLONG8+1248+1248プロトコルが不明であったために破棄された受信パケットの数です。
InUcastOctetsULONGLONG8+1256+1256このインターフェイスを通じてユニキャストパケットでエラーなく受信されたデータのオクテット数です。
InMulticastOctetsULONGLONG8+1264+1264このインターフェイスを通じてマルチキャストパケットでエラーなく受信されたデータのオクテット数です。
InBroadcastOctetsULONGLONG8+1272+1272このインターフェイスを通じてブロードキャストパケットでエラーなく受信されたデータのオクテット数です。
OutOctetsULONGLONG8+1280+1280このインターフェイスを通じてエラーなく送信されたデータのオクテット数です。この値には、ユニキャスト、ブロードキャスト、マルチキャストの各パケットに含まれるオクテットが含まれます。
OutUcastPktsULONGLONG8+1288+1288このインターフェイスを通じてエラーなく送信されたユニキャストパケットの数です。
OutNUcastPktsULONGLONG8+1296+1296このインターフェイスを通じてエラーなく送信された非ユニキャストパケットの数です。この値には、ブロードキャストパケットとマルチキャストパケットが含まれます。
OutDiscardsULONGLONG8+1304+1304エラーがなかったにもかかわらず破棄された送信パケットの数です。
OutErrorsULONGLONG8+1312+1312エラーのために破棄された送信パケットの数です。
OutUcastOctetsULONGLONG8+1320+1320このインターフェイスを通じてユニキャストパケットでエラーなく送信されたデータのオクテット数です。
OutMulticastOctetsULONGLONG8+1328+1328このインターフェイスを通じてマルチキャストパケットでエラーなく送信されたデータのオクテット数です。
OutBroadcastOctetsULONGLONG8+1336+1336このインターフェイスを通じてブロードキャストパケットでエラーなく送信されたデータのオクテット数です。
OutQLenULONGLONG8+1344+1344送信キューの長さです。このフィールドは現在使用されていません。

構造体: _InterfaceAndOperStatusFlags_e__Struct x64 1B / x86 1B

フィールドサイズx64x86
_bitfieldBYTE1+0+0

公式ドキュメント

MIB_IF_ROW2 構造体は、特定のインターフェイスに関する情報を格納します。

解説(Remarks)

MIB_IF_ROW2 構造体は、Windows Vista 以降で定義されています。

Type フィールドの値は Ipifcons.h ヘッダーファイルで定義されています。現在サポートされているのは、Type メンバーの説明に記載されている値のみです。

Netioapi.h ヘッダーファイルは Iphlpapi.h ヘッダーファイルに自動的にインクルードされることに注意してください。Netioapi.h ヘッダーファイルを直接使用してはなりません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#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_IF_ROW2  (x64 1352 / x86 1352 バイト)
typedef struct MIB_IF_ROW2 {
    NET_LUID_LH InterfaceLuid;
    DWORD InterfaceIndex;
    GUID InterfaceGuid;
    WCHAR Alias[257];
    WCHAR Description[257];
    DWORD PhysicalAddressLength;
    BYTE PhysicalAddress[32];
    BYTE PermanentPhysicalAddress[32];
    DWORD Mtu;
    DWORD Type;
    TUNNEL_TYPE TunnelType;
    NDIS_MEDIUM MediaType;
    NDIS_PHYSICAL_MEDIUM PhysicalMediumType;
    NET_IF_ACCESS_TYPE AccessType;
    NET_IF_DIRECTION_TYPE DirectionType;
    _InterfaceAndOperStatusFlags_e__Struct InterfaceAndOperStatusFlags;
    IF_OPER_STATUS OperStatus;
    NET_IF_ADMIN_STATUS AdminStatus;
    NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
    GUID NetworkGuid;
    NET_IF_CONNECTION_TYPE ConnectionType;
    ULONGLONG TransmitLinkSpeed;
    ULONGLONG ReceiveLinkSpeed;
    ULONGLONG InOctets;
    ULONGLONG InUcastPkts;
    ULONGLONG InNUcastPkts;
    ULONGLONG InDiscards;
    ULONGLONG InErrors;
    ULONGLONG InUnknownProtos;
    ULONGLONG InUcastOctets;
    ULONGLONG InMulticastOctets;
    ULONGLONG InBroadcastOctets;
    ULONGLONG OutOctets;
    ULONGLONG OutUcastPkts;
    ULONGLONG OutNUcastPkts;
    ULONGLONG OutDiscards;
    ULONGLONG OutErrors;
    ULONGLONG OutUcastOctets;
    ULONGLONG OutMulticastOctets;
    ULONGLONG OutBroadcastOctets;
    ULONGLONG OutQLen;
} MIB_IF_ROW2;
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_IF_ROW2
{
    public NET_LUID_LH InterfaceLuid;
    public uint InterfaceIndex;
    public Guid InterfaceGuid;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)] public string Alias;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)] public string Description;
    public uint PhysicalAddressLength;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] PhysicalAddress;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] PermanentPhysicalAddress;
    public uint Mtu;
    public uint Type;
    public int TunnelType;
    public int MediaType;
    public int PhysicalMediumType;
    public int AccessType;
    public int DirectionType;
    public _InterfaceAndOperStatusFlags_e__Struct InterfaceAndOperStatusFlags;
    public int OperStatus;
    public int AdminStatus;
    public int MediaConnectState;
    public Guid NetworkGuid;
    public int ConnectionType;
    public ulong TransmitLinkSpeed;
    public ulong ReceiveLinkSpeed;
    public ulong InOctets;
    public ulong InUcastPkts;
    public ulong InNUcastPkts;
    public ulong InDiscards;
    public ulong InErrors;
    public ulong InUnknownProtos;
    public ulong InUcastOctets;
    public ulong InMulticastOctets;
    public ulong InBroadcastOctets;
    public ulong OutOctets;
    public ulong OutUcastPkts;
    public ulong OutNUcastPkts;
    public ulong OutDiscards;
    public ulong OutErrors;
    public ulong OutUcastOctets;
    public ulong OutMulticastOctets;
    public ulong OutBroadcastOctets;
    public ulong OutQLen;
}
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_IF_ROW2
    Public InterfaceLuid As NET_LUID_LH
    Public InterfaceIndex As UInteger
    Public InterfaceGuid As Guid
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=257)> Public Alias As String
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=257)> Public Description As String
    Public PhysicalAddressLength As UInteger
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=32)> Public PhysicalAddress() As Byte
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=32)> Public PermanentPhysicalAddress() As Byte
    Public Mtu As UInteger
    Public Type As UInteger
    Public TunnelType As Integer
    Public MediaType As Integer
    Public PhysicalMediumType As Integer
    Public AccessType As Integer
    Public DirectionType As Integer
    Public InterfaceAndOperStatusFlags As _InterfaceAndOperStatusFlags_e__Struct
    Public OperStatus As Integer
    Public AdminStatus As Integer
    Public MediaConnectState As Integer
    Public NetworkGuid As Guid
    Public ConnectionType As Integer
    Public TransmitLinkSpeed As ULong
    Public ReceiveLinkSpeed As ULong
    Public InOctets As ULong
    Public InUcastPkts As ULong
    Public InNUcastPkts As ULong
    Public InDiscards As ULong
    Public InErrors As ULong
    Public InUnknownProtos As ULong
    Public InUcastOctets As ULong
    Public InMulticastOctets As ULong
    Public InBroadcastOctets As ULong
    Public OutOctets As ULong
    Public OutUcastPkts As ULong
    Public OutNUcastPkts As ULong
    Public OutDiscards As ULong
    Public OutErrors As ULong
    Public OutUcastOctets As ULong
    Public OutMulticastOctets As ULong
    Public OutBroadcastOctets As ULong
    Public OutQLen 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_IF_ROW2(ctypes.Structure):
    _fields_ = [
        ("InterfaceLuid", NET_LUID_LH),
        ("InterfaceIndex", wintypes.DWORD),
        ("InterfaceGuid", GUID),
        ("Alias", ctypes.c_wchar * 257),
        ("Description", ctypes.c_wchar * 257),
        ("PhysicalAddressLength", wintypes.DWORD),
        ("PhysicalAddress", ctypes.c_ubyte * 32),
        ("PermanentPhysicalAddress", ctypes.c_ubyte * 32),
        ("Mtu", wintypes.DWORD),
        ("Type", wintypes.DWORD),
        ("TunnelType", ctypes.c_int),
        ("MediaType", ctypes.c_int),
        ("PhysicalMediumType", ctypes.c_int),
        ("AccessType", ctypes.c_int),
        ("DirectionType", ctypes.c_int),
        ("InterfaceAndOperStatusFlags", _InterfaceAndOperStatusFlags_e__Struct),
        ("OperStatus", ctypes.c_int),
        ("AdminStatus", ctypes.c_int),
        ("MediaConnectState", ctypes.c_int),
        ("NetworkGuid", GUID),
        ("ConnectionType", ctypes.c_int),
        ("TransmitLinkSpeed", ctypes.c_ulonglong),
        ("ReceiveLinkSpeed", ctypes.c_ulonglong),
        ("InOctets", ctypes.c_ulonglong),
        ("InUcastPkts", ctypes.c_ulonglong),
        ("InNUcastPkts", ctypes.c_ulonglong),
        ("InDiscards", ctypes.c_ulonglong),
        ("InErrors", ctypes.c_ulonglong),
        ("InUnknownProtos", ctypes.c_ulonglong),
        ("InUcastOctets", ctypes.c_ulonglong),
        ("InMulticastOctets", ctypes.c_ulonglong),
        ("InBroadcastOctets", ctypes.c_ulonglong),
        ("OutOctets", ctypes.c_ulonglong),
        ("OutUcastPkts", ctypes.c_ulonglong),
        ("OutNUcastPkts", ctypes.c_ulonglong),
        ("OutDiscards", ctypes.c_ulonglong),
        ("OutErrors", ctypes.c_ulonglong),
        ("OutUcastOctets", ctypes.c_ulonglong),
        ("OutMulticastOctets", ctypes.c_ulonglong),
        ("OutBroadcastOctets", ctypes.c_ulonglong),
        ("OutQLen", ctypes.c_ulonglong),
    ]
#[repr(C)]
pub struct NET_LUID_LH {
    pub Value: u64,
    pub Info: _Info_e__Struct,
}

#[repr(C)]
pub struct MIB_IF_ROW2 {
    pub InterfaceLuid: NET_LUID_LH,
    pub InterfaceIndex: u32,
    pub InterfaceGuid: GUID,
    pub Alias: [u16; 257],
    pub Description: [u16; 257],
    pub PhysicalAddressLength: u32,
    pub PhysicalAddress: [u8; 32],
    pub PermanentPhysicalAddress: [u8; 32],
    pub Mtu: u32,
    pub Type: u32,
    pub TunnelType: i32,
    pub MediaType: i32,
    pub PhysicalMediumType: i32,
    pub AccessType: i32,
    pub DirectionType: i32,
    pub InterfaceAndOperStatusFlags: _InterfaceAndOperStatusFlags_e__Struct,
    pub OperStatus: i32,
    pub AdminStatus: i32,
    pub MediaConnectState: i32,
    pub NetworkGuid: GUID,
    pub ConnectionType: i32,
    pub TransmitLinkSpeed: u64,
    pub ReceiveLinkSpeed: u64,
    pub InOctets: u64,
    pub InUcastPkts: u64,
    pub InNUcastPkts: u64,
    pub InDiscards: u64,
    pub InErrors: u64,
    pub InUnknownProtos: u64,
    pub InUcastOctets: u64,
    pub InMulticastOctets: u64,
    pub InBroadcastOctets: u64,
    pub OutOctets: u64,
    pub OutUcastPkts: u64,
    pub OutNUcastPkts: u64,
    pub OutDiscards: u64,
    pub OutErrors: u64,
    pub OutUcastOctets: u64,
    pub OutMulticastOctets: u64,
    pub OutBroadcastOctets: u64,
    pub OutQLen: u64,
}
import "golang.org/x/sys/windows"

type NET_LUID_LH struct {
	Value uint64
	Info _Info_e__Struct
}

type MIB_IF_ROW2 struct {
	InterfaceLuid NET_LUID_LH
	InterfaceIndex uint32
	InterfaceGuid windows.GUID
	Alias [257]uint16
	Description [257]uint16
	PhysicalAddressLength uint32
	PhysicalAddress [32]byte
	PermanentPhysicalAddress [32]byte
	Mtu uint32
	Type uint32
	TunnelType int32
	MediaType int32
	PhysicalMediumType int32
	AccessType int32
	DirectionType int32
	InterfaceAndOperStatusFlags _InterfaceAndOperStatusFlags_e__Struct
	OperStatus int32
	AdminStatus int32
	MediaConnectState int32
	NetworkGuid windows.GUID
	ConnectionType int32
	TransmitLinkSpeed uint64
	ReceiveLinkSpeed uint64
	InOctets uint64
	InUcastPkts uint64
	InNUcastPkts uint64
	InDiscards uint64
	InErrors uint64
	InUnknownProtos uint64
	InUcastOctets uint64
	InMulticastOctets uint64
	InBroadcastOctets uint64
	OutOctets uint64
	OutUcastPkts uint64
	OutNUcastPkts uint64
	OutDiscards uint64
	OutErrors uint64
	OutUcastOctets uint64
	OutMulticastOctets uint64
	OutBroadcastOctets uint64
	OutQLen uint64
}
type
  NET_LUID_LH = record
    Value: UInt64;
    Info: _Info_e__Struct;
  end;

  MIB_IF_ROW2 = record
    InterfaceLuid: NET_LUID_LH;
    InterfaceIndex: DWORD;
    InterfaceGuid: TGUID;
    Alias: array[0..256] of WideChar;
    Description: array[0..256] of WideChar;
    PhysicalAddressLength: DWORD;
    PhysicalAddress: array[0..31] of Byte;
    PermanentPhysicalAddress: array[0..31] of Byte;
    Mtu: DWORD;
    Type: DWORD;
    TunnelType: Integer;
    MediaType: Integer;
    PhysicalMediumType: Integer;
    AccessType: Integer;
    DirectionType: Integer;
    InterfaceAndOperStatusFlags: _InterfaceAndOperStatusFlags_e__Struct;
    OperStatus: Integer;
    AdminStatus: Integer;
    MediaConnectState: Integer;
    NetworkGuid: TGUID;
    ConnectionType: Integer;
    TransmitLinkSpeed: UInt64;
    ReceiveLinkSpeed: UInt64;
    InOctets: UInt64;
    InUcastPkts: UInt64;
    InNUcastPkts: UInt64;
    InDiscards: UInt64;
    InErrors: UInt64;
    InUnknownProtos: UInt64;
    InUcastOctets: UInt64;
    InMulticastOctets: UInt64;
    InBroadcastOctets: UInt64;
    OutOctets: UInt64;
    OutUcastPkts: UInt64;
    OutNUcastPkts: UInt64;
    OutDiscards: UInt64;
    OutErrors: UInt64;
    OutUcastOctets: UInt64;
    OutMulticastOctets: UInt64;
    OutBroadcastOctets: UInt64;
    OutQLen: UInt64;
  end;
const NET_LUID_LH = extern struct {
    Value: u64,
    Info: _Info_e__Struct,
};

const MIB_IF_ROW2 = extern struct {
    InterfaceLuid: NET_LUID_LH,
    InterfaceIndex: u32,
    InterfaceGuid: GUID,
    Alias: [257]u16,
    Description: [257]u16,
    PhysicalAddressLength: u32,
    PhysicalAddress: [32]u8,
    PermanentPhysicalAddress: [32]u8,
    Mtu: u32,
    Type: u32,
    TunnelType: i32,
    MediaType: i32,
    PhysicalMediumType: i32,
    AccessType: i32,
    DirectionType: i32,
    InterfaceAndOperStatusFlags: _InterfaceAndOperStatusFlags_e__Struct,
    OperStatus: i32,
    AdminStatus: i32,
    MediaConnectState: i32,
    NetworkGuid: GUID,
    ConnectionType: i32,
    TransmitLinkSpeed: u64,
    ReceiveLinkSpeed: u64,
    InOctets: u64,
    InUcastPkts: u64,
    InNUcastPkts: u64,
    InDiscards: u64,
    InErrors: u64,
    InUnknownProtos: u64,
    InUcastOctets: u64,
    InMulticastOctets: u64,
    InBroadcastOctets: u64,
    OutOctets: u64,
    OutUcastPkts: u64,
    OutNUcastPkts: u64,
    OutDiscards: u64,
    OutErrors: u64,
    OutUcastOctets: u64,
    OutMulticastOctets: u64,
    OutBroadcastOctets: u64,
    OutQLen: u64,
};
type
  NET_LUID_LH {.bycopy.} = object
    Value: uint64
    Info: _Info_e__Struct

  MIB_IF_ROW2 {.bycopy.} = object
    InterfaceLuid: NET_LUID_LH
    InterfaceIndex: uint32
    InterfaceGuid: GUID
    Alias: array[257, uint16]
    Description: array[257, uint16]
    PhysicalAddressLength: uint32
    PhysicalAddress: array[32, uint8]
    PermanentPhysicalAddress: array[32, uint8]
    Mtu: uint32
    Type: uint32
    TunnelType: int32
    MediaType: int32
    PhysicalMediumType: int32
    AccessType: int32
    DirectionType: int32
    InterfaceAndOperStatusFlags: _InterfaceAndOperStatusFlags_e__Struct
    OperStatus: int32
    AdminStatus: int32
    MediaConnectState: int32
    NetworkGuid: GUID
    ConnectionType: int32
    TransmitLinkSpeed: uint64
    ReceiveLinkSpeed: uint64
    InOctets: uint64
    InUcastPkts: uint64
    InNUcastPkts: uint64
    InDiscards: uint64
    InErrors: uint64
    InUnknownProtos: uint64
    InUcastOctets: uint64
    InMulticastOctets: uint64
    InBroadcastOctets: uint64
    OutOctets: uint64
    OutUcastPkts: uint64
    OutNUcastPkts: uint64
    OutDiscards: uint64
    OutErrors: uint64
    OutUcastOctets: uint64
    OutMulticastOctets: uint64
    OutBroadcastOctets: uint64
    OutQLen: uint64
struct NET_LUID_LH
{
    ulong Value;
    _Info_e__Struct Info;
}

struct MIB_IF_ROW2
{
    NET_LUID_LH InterfaceLuid;
    uint InterfaceIndex;
    GUID InterfaceGuid;
    wchar[257] Alias;
    wchar[257] Description;
    uint PhysicalAddressLength;
    ubyte[32] PhysicalAddress;
    ubyte[32] PermanentPhysicalAddress;
    uint Mtu;
    uint Type;
    int TunnelType;
    int MediaType;
    int PhysicalMediumType;
    int AccessType;
    int DirectionType;
    _InterfaceAndOperStatusFlags_e__Struct InterfaceAndOperStatusFlags;
    int OperStatus;
    int AdminStatus;
    int MediaConnectState;
    GUID NetworkGuid;
    int ConnectionType;
    ulong TransmitLinkSpeed;
    ulong ReceiveLinkSpeed;
    ulong InOctets;
    ulong InUcastPkts;
    ulong InNUcastPkts;
    ulong InDiscards;
    ulong InErrors;
    ulong InUnknownProtos;
    ulong InUcastOctets;
    ulong InMulticastOctets;
    ulong InBroadcastOctets;
    ulong OutOctets;
    ulong OutUcastPkts;
    ulong OutNUcastPkts;
    ulong OutDiscards;
    ulong OutErrors;
    ulong OutUcastOctets;
    ulong OutMulticastOctets;
    ulong OutBroadcastOctets;
    ulong OutQLen;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MIB_IF_ROW2 サイズ: 1352 バイト(x64)
dim st, 338    ; 4byte整数×338(構造体サイズ 1352 / 4 切り上げ)
; InterfaceLuid : NET_LUID_LH (+0, 8byte)  varptr(st)+0 を基点に操作(8byte:入れ子/配列)
; InterfaceIndex : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; InterfaceGuid : GUID (+12, 16byte)  varptr(st)+12 を基点に操作(16byte:入れ子/配列)
; Alias : WCHAR (+28, 514byte)  varptr(st)+28 を基点に操作(514byte:入れ子/配列)
; Description : WCHAR (+542, 514byte)  varptr(st)+542 を基点に操作(514byte:入れ子/配列)
; PhysicalAddressLength : DWORD (+1056, 4byte)  st.264 = 値  /  値 = st.264   (lpoke/lpeek も可)
; PhysicalAddress : BYTE (+1060, 32byte)  varptr(st)+1060 を基点に操作(32byte:入れ子/配列)
; PermanentPhysicalAddress : BYTE (+1092, 32byte)  varptr(st)+1092 を基点に操作(32byte:入れ子/配列)
; Mtu : DWORD (+1124, 4byte)  st.281 = 値  /  値 = st.281   (lpoke/lpeek も可)
; Type : DWORD (+1128, 4byte)  st.282 = 値  /  値 = st.282   (lpoke/lpeek も可)
; TunnelType : TUNNEL_TYPE (+1132, 4byte)  st.283 = 値  /  値 = st.283   (lpoke/lpeek も可)
; MediaType : NDIS_MEDIUM (+1136, 4byte)  st.284 = 値  /  値 = st.284   (lpoke/lpeek も可)
; PhysicalMediumType : NDIS_PHYSICAL_MEDIUM (+1140, 4byte)  st.285 = 値  /  値 = st.285   (lpoke/lpeek も可)
; AccessType : NET_IF_ACCESS_TYPE (+1144, 4byte)  st.286 = 値  /  値 = st.286   (lpoke/lpeek も可)
; DirectionType : NET_IF_DIRECTION_TYPE (+1148, 4byte)  st.287 = 値  /  値 = st.287   (lpoke/lpeek も可)
; InterfaceAndOperStatusFlags : _InterfaceAndOperStatusFlags_e__Struct (+1152, 1byte)  varptr(st)+1152 を基点に操作(1byte:入れ子/配列)
; OperStatus : IF_OPER_STATUS (+1156, 4byte)  st.289 = 値  /  値 = st.289   (lpoke/lpeek も可)
; AdminStatus : NET_IF_ADMIN_STATUS (+1160, 4byte)  st.290 = 値  /  値 = st.290   (lpoke/lpeek も可)
; MediaConnectState : NET_IF_MEDIA_CONNECT_STATE (+1164, 4byte)  st.291 = 値  /  値 = st.291   (lpoke/lpeek も可)
; NetworkGuid : GUID (+1168, 16byte)  varptr(st)+1168 を基点に操作(16byte:入れ子/配列)
; ConnectionType : NET_IF_CONNECTION_TYPE (+1184, 4byte)  st.296 = 値  /  値 = st.296   (lpoke/lpeek も可)
; TransmitLinkSpeed : ULONGLONG (+1192, 8byte)  qpoke st,1192,値 / qpeek(st,1192)  ※IronHSPのみ。3.7/3.8は lpoke st,1192,下位 : lpoke st,1196,上位
; ReceiveLinkSpeed : ULONGLONG (+1200, 8byte)  qpoke st,1200,値 / qpeek(st,1200)  ※IronHSPのみ。3.7/3.8は lpoke st,1200,下位 : lpoke st,1204,上位
; InOctets : ULONGLONG (+1208, 8byte)  qpoke st,1208,値 / qpeek(st,1208)  ※IronHSPのみ。3.7/3.8は lpoke st,1208,下位 : lpoke st,1212,上位
; InUcastPkts : ULONGLONG (+1216, 8byte)  qpoke st,1216,値 / qpeek(st,1216)  ※IronHSPのみ。3.7/3.8は lpoke st,1216,下位 : lpoke st,1220,上位
; InNUcastPkts : ULONGLONG (+1224, 8byte)  qpoke st,1224,値 / qpeek(st,1224)  ※IronHSPのみ。3.7/3.8は lpoke st,1224,下位 : lpoke st,1228,上位
; InDiscards : ULONGLONG (+1232, 8byte)  qpoke st,1232,値 / qpeek(st,1232)  ※IronHSPのみ。3.7/3.8は lpoke st,1232,下位 : lpoke st,1236,上位
; InErrors : ULONGLONG (+1240, 8byte)  qpoke st,1240,値 / qpeek(st,1240)  ※IronHSPのみ。3.7/3.8は lpoke st,1240,下位 : lpoke st,1244,上位
; InUnknownProtos : ULONGLONG (+1248, 8byte)  qpoke st,1248,値 / qpeek(st,1248)  ※IronHSPのみ。3.7/3.8は lpoke st,1248,下位 : lpoke st,1252,上位
; InUcastOctets : ULONGLONG (+1256, 8byte)  qpoke st,1256,値 / qpeek(st,1256)  ※IronHSPのみ。3.7/3.8は lpoke st,1256,下位 : lpoke st,1260,上位
; InMulticastOctets : ULONGLONG (+1264, 8byte)  qpoke st,1264,値 / qpeek(st,1264)  ※IronHSPのみ。3.7/3.8は lpoke st,1264,下位 : lpoke st,1268,上位
; InBroadcastOctets : ULONGLONG (+1272, 8byte)  qpoke st,1272,値 / qpeek(st,1272)  ※IronHSPのみ。3.7/3.8は lpoke st,1272,下位 : lpoke st,1276,上位
; OutOctets : ULONGLONG (+1280, 8byte)  qpoke st,1280,値 / qpeek(st,1280)  ※IronHSPのみ。3.7/3.8は lpoke st,1280,下位 : lpoke st,1284,上位
; OutUcastPkts : ULONGLONG (+1288, 8byte)  qpoke st,1288,値 / qpeek(st,1288)  ※IronHSPのみ。3.7/3.8は lpoke st,1288,下位 : lpoke st,1292,上位
; OutNUcastPkts : ULONGLONG (+1296, 8byte)  qpoke st,1296,値 / qpeek(st,1296)  ※IronHSPのみ。3.7/3.8は lpoke st,1296,下位 : lpoke st,1300,上位
; OutDiscards : ULONGLONG (+1304, 8byte)  qpoke st,1304,値 / qpeek(st,1304)  ※IronHSPのみ。3.7/3.8は lpoke st,1304,下位 : lpoke st,1308,上位
; OutErrors : ULONGLONG (+1312, 8byte)  qpoke st,1312,値 / qpeek(st,1312)  ※IronHSPのみ。3.7/3.8は lpoke st,1312,下位 : lpoke st,1316,上位
; OutUcastOctets : ULONGLONG (+1320, 8byte)  qpoke st,1320,値 / qpeek(st,1320)  ※IronHSPのみ。3.7/3.8は lpoke st,1320,下位 : lpoke st,1324,上位
; OutMulticastOctets : ULONGLONG (+1328, 8byte)  qpoke st,1328,値 / qpeek(st,1328)  ※IronHSPのみ。3.7/3.8は lpoke st,1328,下位 : lpoke st,1332,上位
; OutBroadcastOctets : ULONGLONG (+1336, 8byte)  qpoke st,1336,値 / qpeek(st,1336)  ※IronHSPのみ。3.7/3.8は lpoke st,1336,下位 : lpoke st,1340,上位
; OutQLen : ULONGLONG (+1344, 8byte)  qpoke st,1344,値 / qpeek(st,1344)  ※IronHSPのみ。3.7/3.8は lpoke st,1344,下位 : lpoke st,1348,上位
; ※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_IF_ROW2
    #field byte InterfaceLuid 8
    #field int InterfaceIndex
    #field GUID InterfaceGuid
    #field wchar Alias 257
    #field wchar Description 257
    #field int PhysicalAddressLength
    #field byte PhysicalAddress 32
    #field byte PermanentPhysicalAddress 32
    #field int Mtu
    #field int Type
    #field int TunnelType
    #field int MediaType
    #field int PhysicalMediumType
    #field int AccessType
    #field int DirectionType
    #field _InterfaceAndOperStatusFlags_e__Struct InterfaceAndOperStatusFlags
    #field int OperStatus
    #field int AdminStatus
    #field int MediaConnectState
    #field GUID NetworkGuid
    #field int ConnectionType
    #field int64 TransmitLinkSpeed
    #field int64 ReceiveLinkSpeed
    #field int64 InOctets
    #field int64 InUcastPkts
    #field int64 InNUcastPkts
    #field int64 InDiscards
    #field int64 InErrors
    #field int64 InUnknownProtos
    #field int64 InUcastOctets
    #field int64 InMulticastOctets
    #field int64 InBroadcastOctets
    #field int64 OutOctets
    #field int64 OutUcastPkts
    #field int64 OutNUcastPkts
    #field int64 OutDiscards
    #field int64 OutErrors
    #field int64 OutUcastOctets
    #field int64 OutMulticastOctets
    #field int64 OutBroadcastOctets
    #field int64 OutQLen
#endstruct

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