ホーム › NetworkManagement.IpHelper › MIB_IPSTATS_W2K
MIB_IPSTATS_W2K
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| dwForwarding | DWORD | 4 | +0 | +0 | IP転送が有効か否かを示す。1は有効、2は無効。 |
| dwDefaultTTL | DWORD | 4 | +4 | +4 | 送出IPデータグラムの既定TTL値を示す。 |
| dwInReceives | DWORD | 4 | +8 | +8 | 受信したIPデータグラムの総数を保持する。 |
| dwInHdrErrors | DWORD | 4 | +12 | +12 | ヘッダエラーにより破棄した受信データグラム数を保持する。 |
| dwInAddrErrors | DWORD | 4 | +16 | +16 | アドレスエラーにより破棄した受信データグラム数を保持する。 |
| dwForwDatagrams | DWORD | 4 | +20 | +20 | 転送したデータグラム数を保持する。 |
| dwInUnknownProtos | DWORD | 4 | +24 | +24 | プロトコル未知のため破棄した受信データグラム数を保持する。 |
| dwInDiscards | DWORD | 4 | +28 | +28 | 破棄した受信データグラム数(エラー以外)を保持する。 |
| dwInDelivers | DWORD | 4 | +32 | +32 | 上位プロトコルへ配送した受信データグラム数を保持する。 |
| dwOutRequests | DWORD | 4 | +36 | +36 | 上位プロトコルが送信要求したデータグラム数を保持する。 |
| dwRoutingDiscards | DWORD | 4 | +40 | +40 | ルーティング上の理由で破棄したデータグラム数を保持する。 |
| dwOutDiscards | DWORD | 4 | +44 | +44 | 破棄した送信データグラム数を保持する。 |
| dwOutNoRoutes | DWORD | 4 | +48 | +48 | 経路不明により破棄した送信データグラム数を保持する。 |
| dwReasmTimeout | DWORD | 4 | +52 | +52 | フラグメント再構成のタイムアウト秒数を示す。 |
| dwReasmReqds | DWORD | 4 | +56 | +56 | 再構成を要したフラグメント受信数を保持する。 |
| dwReasmOks | DWORD | 4 | +60 | +60 | 正常に再構成したデータグラム数を保持する。 |
| dwReasmFails | DWORD | 4 | +64 | +64 | 再構成に失敗した回数を保持する。 |
| dwFragOks | DWORD | 4 | +68 | +68 | 正常に分割したデータグラム数を保持する。 |
| dwFragFails | DWORD | 4 | +72 | +72 | 分割に失敗したデータグラム数を保持する。 |
| dwFragCreates | DWORD | 4 | +76 | +76 | 生成したフラグメント数を保持する。 |
| dwNumIf | DWORD | 4 | +80 | +80 | システム上のインターフェース数を示す。 |
| dwNumAddr | DWORD | 4 | +84 | +84 | システムに割り当てられたIPアドレス数を示す。 |
| dwNumRoutes | DWORD | 4 | +88 | +88 | ルーティングテーブルのエントリ数を示す。 |
各言語での定義
#include <windows.h>
// MIB_IPSTATS_W2K (x64 92 / x86 92 バイト)
typedef struct MIB_IPSTATS_W2K {
DWORD dwForwarding;
DWORD dwDefaultTTL;
DWORD dwInReceives;
DWORD dwInHdrErrors;
DWORD dwInAddrErrors;
DWORD dwForwDatagrams;
DWORD dwInUnknownProtos;
DWORD dwInDiscards;
DWORD dwInDelivers;
DWORD dwOutRequests;
DWORD dwRoutingDiscards;
DWORD dwOutDiscards;
DWORD dwOutNoRoutes;
DWORD dwReasmTimeout;
DWORD dwReasmReqds;
DWORD dwReasmOks;
DWORD dwReasmFails;
DWORD dwFragOks;
DWORD dwFragFails;
DWORD dwFragCreates;
DWORD dwNumIf;
DWORD dwNumAddr;
DWORD dwNumRoutes;
} MIB_IPSTATS_W2K;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct MIB_IPSTATS_W2K
{
public uint dwForwarding;
public uint dwDefaultTTL;
public uint dwInReceives;
public uint dwInHdrErrors;
public uint dwInAddrErrors;
public uint dwForwDatagrams;
public uint dwInUnknownProtos;
public uint dwInDiscards;
public uint dwInDelivers;
public uint dwOutRequests;
public uint dwRoutingDiscards;
public uint dwOutDiscards;
public uint dwOutNoRoutes;
public uint dwReasmTimeout;
public uint dwReasmReqds;
public uint dwReasmOks;
public uint dwReasmFails;
public uint dwFragOks;
public uint dwFragFails;
public uint dwFragCreates;
public uint dwNumIf;
public uint dwNumAddr;
public uint dwNumRoutes;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure MIB_IPSTATS_W2K
Public dwForwarding As UInteger
Public dwDefaultTTL As UInteger
Public dwInReceives As UInteger
Public dwInHdrErrors As UInteger
Public dwInAddrErrors As UInteger
Public dwForwDatagrams As UInteger
Public dwInUnknownProtos As UInteger
Public dwInDiscards As UInteger
Public dwInDelivers As UInteger
Public dwOutRequests As UInteger
Public dwRoutingDiscards As UInteger
Public dwOutDiscards As UInteger
Public dwOutNoRoutes As UInteger
Public dwReasmTimeout As UInteger
Public dwReasmReqds As UInteger
Public dwReasmOks As UInteger
Public dwReasmFails As UInteger
Public dwFragOks As UInteger
Public dwFragFails As UInteger
Public dwFragCreates As UInteger
Public dwNumIf As UInteger
Public dwNumAddr As UInteger
Public dwNumRoutes As UInteger
End Structureimport ctypes
from ctypes import wintypes
class MIB_IPSTATS_W2K(ctypes.Structure):
_fields_ = [
("dwForwarding", wintypes.DWORD),
("dwDefaultTTL", wintypes.DWORD),
("dwInReceives", wintypes.DWORD),
("dwInHdrErrors", wintypes.DWORD),
("dwInAddrErrors", wintypes.DWORD),
("dwForwDatagrams", wintypes.DWORD),
("dwInUnknownProtos", wintypes.DWORD),
("dwInDiscards", wintypes.DWORD),
("dwInDelivers", wintypes.DWORD),
("dwOutRequests", wintypes.DWORD),
("dwRoutingDiscards", wintypes.DWORD),
("dwOutDiscards", wintypes.DWORD),
("dwOutNoRoutes", wintypes.DWORD),
("dwReasmTimeout", wintypes.DWORD),
("dwReasmReqds", wintypes.DWORD),
("dwReasmOks", wintypes.DWORD),
("dwReasmFails", wintypes.DWORD),
("dwFragOks", wintypes.DWORD),
("dwFragFails", wintypes.DWORD),
("dwFragCreates", wintypes.DWORD),
("dwNumIf", wintypes.DWORD),
("dwNumAddr", wintypes.DWORD),
("dwNumRoutes", wintypes.DWORD),
]#[repr(C)]
pub struct MIB_IPSTATS_W2K {
pub dwForwarding: u32,
pub dwDefaultTTL: u32,
pub dwInReceives: u32,
pub dwInHdrErrors: u32,
pub dwInAddrErrors: u32,
pub dwForwDatagrams: u32,
pub dwInUnknownProtos: u32,
pub dwInDiscards: u32,
pub dwInDelivers: u32,
pub dwOutRequests: u32,
pub dwRoutingDiscards: u32,
pub dwOutDiscards: u32,
pub dwOutNoRoutes: u32,
pub dwReasmTimeout: u32,
pub dwReasmReqds: u32,
pub dwReasmOks: u32,
pub dwReasmFails: u32,
pub dwFragOks: u32,
pub dwFragFails: u32,
pub dwFragCreates: u32,
pub dwNumIf: u32,
pub dwNumAddr: u32,
pub dwNumRoutes: u32,
}import "golang.org/x/sys/windows"
type MIB_IPSTATS_W2K struct {
dwForwarding uint32
dwDefaultTTL uint32
dwInReceives uint32
dwInHdrErrors uint32
dwInAddrErrors uint32
dwForwDatagrams uint32
dwInUnknownProtos uint32
dwInDiscards uint32
dwInDelivers uint32
dwOutRequests uint32
dwRoutingDiscards uint32
dwOutDiscards uint32
dwOutNoRoutes uint32
dwReasmTimeout uint32
dwReasmReqds uint32
dwReasmOks uint32
dwReasmFails uint32
dwFragOks uint32
dwFragFails uint32
dwFragCreates uint32
dwNumIf uint32
dwNumAddr uint32
dwNumRoutes uint32
}type
MIB_IPSTATS_W2K = record
dwForwarding: DWORD;
dwDefaultTTL: DWORD;
dwInReceives: DWORD;
dwInHdrErrors: DWORD;
dwInAddrErrors: DWORD;
dwForwDatagrams: DWORD;
dwInUnknownProtos: DWORD;
dwInDiscards: DWORD;
dwInDelivers: DWORD;
dwOutRequests: DWORD;
dwRoutingDiscards: DWORD;
dwOutDiscards: DWORD;
dwOutNoRoutes: DWORD;
dwReasmTimeout: DWORD;
dwReasmReqds: DWORD;
dwReasmOks: DWORD;
dwReasmFails: DWORD;
dwFragOks: DWORD;
dwFragFails: DWORD;
dwFragCreates: DWORD;
dwNumIf: DWORD;
dwNumAddr: DWORD;
dwNumRoutes: DWORD;
end;const MIB_IPSTATS_W2K = extern struct {
dwForwarding: u32,
dwDefaultTTL: u32,
dwInReceives: u32,
dwInHdrErrors: u32,
dwInAddrErrors: u32,
dwForwDatagrams: u32,
dwInUnknownProtos: u32,
dwInDiscards: u32,
dwInDelivers: u32,
dwOutRequests: u32,
dwRoutingDiscards: u32,
dwOutDiscards: u32,
dwOutNoRoutes: u32,
dwReasmTimeout: u32,
dwReasmReqds: u32,
dwReasmOks: u32,
dwReasmFails: u32,
dwFragOks: u32,
dwFragFails: u32,
dwFragCreates: u32,
dwNumIf: u32,
dwNumAddr: u32,
dwNumRoutes: u32,
};type
MIB_IPSTATS_W2K {.bycopy.} = object
dwForwarding: uint32
dwDefaultTTL: uint32
dwInReceives: uint32
dwInHdrErrors: uint32
dwInAddrErrors: uint32
dwForwDatagrams: uint32
dwInUnknownProtos: uint32
dwInDiscards: uint32
dwInDelivers: uint32
dwOutRequests: uint32
dwRoutingDiscards: uint32
dwOutDiscards: uint32
dwOutNoRoutes: uint32
dwReasmTimeout: uint32
dwReasmReqds: uint32
dwReasmOks: uint32
dwReasmFails: uint32
dwFragOks: uint32
dwFragFails: uint32
dwFragCreates: uint32
dwNumIf: uint32
dwNumAddr: uint32
dwNumRoutes: uint32struct MIB_IPSTATS_W2K
{
uint dwForwarding;
uint dwDefaultTTL;
uint dwInReceives;
uint dwInHdrErrors;
uint dwInAddrErrors;
uint dwForwDatagrams;
uint dwInUnknownProtos;
uint dwInDiscards;
uint dwInDelivers;
uint dwOutRequests;
uint dwRoutingDiscards;
uint dwOutDiscards;
uint dwOutNoRoutes;
uint dwReasmTimeout;
uint dwReasmReqds;
uint dwReasmOks;
uint dwReasmFails;
uint dwFragOks;
uint dwFragFails;
uint dwFragCreates;
uint dwNumIf;
uint dwNumAddr;
uint dwNumRoutes;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MIB_IPSTATS_W2K サイズ: 92 バイト(x64)
dim st, 23 ; 4byte整数×23(構造体サイズ 92 / 4 切り上げ)
; dwForwarding : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; dwDefaultTTL : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; dwInReceives : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; dwInHdrErrors : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwInAddrErrors : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwForwDatagrams : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwInUnknownProtos : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwInDiscards : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwInDelivers : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; dwOutRequests : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; dwRoutingDiscards : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; dwOutDiscards : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; dwOutNoRoutes : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; dwReasmTimeout : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; dwReasmReqds : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; dwReasmOks : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; dwReasmFails : DWORD (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; dwFragOks : DWORD (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; dwFragFails : DWORD (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; dwFragCreates : DWORD (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; dwNumIf : DWORD (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; dwNumAddr : DWORD (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; dwNumRoutes : DWORD (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MIB_IPSTATS_W2K
#field int dwForwarding
#field int dwDefaultTTL
#field int dwInReceives
#field int dwInHdrErrors
#field int dwInAddrErrors
#field int dwForwDatagrams
#field int dwInUnknownProtos
#field int dwInDiscards
#field int dwInDelivers
#field int dwOutRequests
#field int dwRoutingDiscards
#field int dwOutDiscards
#field int dwOutNoRoutes
#field int dwReasmTimeout
#field int dwReasmReqds
#field int dwReasmOks
#field int dwReasmFails
#field int dwFragOks
#field int dwFragFails
#field int dwFragCreates
#field int dwNumIf
#field int dwNumAddr
#field int dwNumRoutes
#endstruct
stdim st, MIB_IPSTATS_W2K ; NSTRUCT 変数を確保
st->dwForwarding = 100
mes "dwForwarding=" + st->dwForwarding