ホーム › NetworkManagement.WindowsFilteringPlatform › IKEEXT_STATISTICS0
IKEEXT_STATISTICS0
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| ikeStatistics | IKEEXT_KEYMODULE_STATISTICS0 | 544 | +0 | +0 | IKEプロトコルの鍵モジュール統計。 |
| authipStatistics | IKEEXT_KEYMODULE_STATISTICS0 | 544 | +544 | +544 | AuthIPプロトコルの鍵モジュール統計。 |
| commonStatistics | IKEEXT_COMMON_STATISTICS0 | 28 | +1088 | +1088 | プロトコル共通の統計情報。 |
各言語での定義
#include <windows.h>
// IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 (x64 72 / x86 72 バイト)
typedef struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 {
DWORD currentActiveMainModes;
DWORD totalMainModesStarted;
DWORD totalSuccessfulMainModes;
DWORD totalFailedMainModes;
DWORD totalResponderMainModes;
DWORD currentNewResponderMainModes;
DWORD currentActiveQuickModes;
DWORD totalQuickModesStarted;
DWORD totalSuccessfulQuickModes;
DWORD totalFailedQuickModes;
DWORD totalAcquires;
DWORD totalReinitAcquires;
DWORD currentActiveExtendedModes;
DWORD totalExtendedModesStarted;
DWORD totalSuccessfulExtendedModes;
DWORD totalFailedExtendedModes;
DWORD totalImpersonationExtendedModes;
DWORD totalImpersonationMainModes;
} IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0;
// IKEEXT_KEYMODULE_STATISTICS0 (x64 544 / x86 544 バイト)
typedef struct IKEEXT_KEYMODULE_STATISTICS0 {
IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics;
IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics;
DWORD errorFrequencyTable[97];
DWORD mainModeNegotiationTime;
DWORD quickModeNegotiationTime;
DWORD extendedModeNegotiationTime;
} IKEEXT_KEYMODULE_STATISTICS0;
// IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 (x64 8 / x86 8 バイト)
typedef struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 {
DWORD totalSocketReceiveFailures;
DWORD totalSocketSendFailures;
} IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0;
// IKEEXT_COMMON_STATISTICS0 (x64 28 / x86 28 バイト)
typedef struct IKEEXT_COMMON_STATISTICS0 {
IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics;
IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics;
DWORD totalPacketsReceived;
DWORD totalInvalidPacketsReceived;
DWORD currentQueuedWorkitems;
} IKEEXT_COMMON_STATISTICS0;
// IKEEXT_STATISTICS0 (x64 1116 / x86 1116 バイト)
typedef struct IKEEXT_STATISTICS0 {
IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics;
IKEEXT_KEYMODULE_STATISTICS0 authipStatistics;
IKEEXT_COMMON_STATISTICS0 commonStatistics;
} IKEEXT_STATISTICS0;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
{
public uint currentActiveMainModes;
public uint totalMainModesStarted;
public uint totalSuccessfulMainModes;
public uint totalFailedMainModes;
public uint totalResponderMainModes;
public uint currentNewResponderMainModes;
public uint currentActiveQuickModes;
public uint totalQuickModesStarted;
public uint totalSuccessfulQuickModes;
public uint totalFailedQuickModes;
public uint totalAcquires;
public uint totalReinitAcquires;
public uint currentActiveExtendedModes;
public uint totalExtendedModesStarted;
public uint totalSuccessfulExtendedModes;
public uint totalFailedExtendedModes;
public uint totalImpersonationExtendedModes;
public uint totalImpersonationMainModes;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IKEEXT_KEYMODULE_STATISTICS0
{
public IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics;
public IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 97)] public uint[] errorFrequencyTable;
public uint mainModeNegotiationTime;
public uint quickModeNegotiationTime;
public uint extendedModeNegotiationTime;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
{
public uint totalSocketReceiveFailures;
public uint totalSocketSendFailures;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IKEEXT_COMMON_STATISTICS0
{
public IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics;
public IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics;
public uint totalPacketsReceived;
public uint totalInvalidPacketsReceived;
public uint currentQueuedWorkitems;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IKEEXT_STATISTICS0
{
public IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics;
public IKEEXT_KEYMODULE_STATISTICS0 authipStatistics;
public IKEEXT_COMMON_STATISTICS0 commonStatistics;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
Public currentActiveMainModes As UInteger
Public totalMainModesStarted As UInteger
Public totalSuccessfulMainModes As UInteger
Public totalFailedMainModes As UInteger
Public totalResponderMainModes As UInteger
Public currentNewResponderMainModes As UInteger
Public currentActiveQuickModes As UInteger
Public totalQuickModesStarted As UInteger
Public totalSuccessfulQuickModes As UInteger
Public totalFailedQuickModes As UInteger
Public totalAcquires As UInteger
Public totalReinitAcquires As UInteger
Public currentActiveExtendedModes As UInteger
Public totalExtendedModesStarted As UInteger
Public totalSuccessfulExtendedModes As UInteger
Public totalFailedExtendedModes As UInteger
Public totalImpersonationExtendedModes As UInteger
Public totalImpersonationMainModes As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure IKEEXT_KEYMODULE_STATISTICS0
Public v4Statistics As IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
Public v6Statistics As IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=97)> Public errorFrequencyTable() As UInteger
Public mainModeNegotiationTime As UInteger
Public quickModeNegotiationTime As UInteger
Public extendedModeNegotiationTime As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
Public totalSocketReceiveFailures As UInteger
Public totalSocketSendFailures As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure IKEEXT_COMMON_STATISTICS0
Public v4Statistics As IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
Public v6Statistics As IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
Public totalPacketsReceived As UInteger
Public totalInvalidPacketsReceived As UInteger
Public currentQueuedWorkitems As UInteger
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure IKEEXT_STATISTICS0
Public ikeStatistics As IKEEXT_KEYMODULE_STATISTICS0
Public authipStatistics As IKEEXT_KEYMODULE_STATISTICS0
Public commonStatistics As IKEEXT_COMMON_STATISTICS0
End Structureimport ctypes
from ctypes import wintypes
class IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0(ctypes.Structure):
_fields_ = [
("currentActiveMainModes", wintypes.DWORD),
("totalMainModesStarted", wintypes.DWORD),
("totalSuccessfulMainModes", wintypes.DWORD),
("totalFailedMainModes", wintypes.DWORD),
("totalResponderMainModes", wintypes.DWORD),
("currentNewResponderMainModes", wintypes.DWORD),
("currentActiveQuickModes", wintypes.DWORD),
("totalQuickModesStarted", wintypes.DWORD),
("totalSuccessfulQuickModes", wintypes.DWORD),
("totalFailedQuickModes", wintypes.DWORD),
("totalAcquires", wintypes.DWORD),
("totalReinitAcquires", wintypes.DWORD),
("currentActiveExtendedModes", wintypes.DWORD),
("totalExtendedModesStarted", wintypes.DWORD),
("totalSuccessfulExtendedModes", wintypes.DWORD),
("totalFailedExtendedModes", wintypes.DWORD),
("totalImpersonationExtendedModes", wintypes.DWORD),
("totalImpersonationMainModes", wintypes.DWORD),
]
class IKEEXT_KEYMODULE_STATISTICS0(ctypes.Structure):
_fields_ = [
("v4Statistics", IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0),
("v6Statistics", IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0),
("errorFrequencyTable", wintypes.DWORD * 97),
("mainModeNegotiationTime", wintypes.DWORD),
("quickModeNegotiationTime", wintypes.DWORD),
("extendedModeNegotiationTime", wintypes.DWORD),
]
class IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0(ctypes.Structure):
_fields_ = [
("totalSocketReceiveFailures", wintypes.DWORD),
("totalSocketSendFailures", wintypes.DWORD),
]
class IKEEXT_COMMON_STATISTICS0(ctypes.Structure):
_fields_ = [
("v4Statistics", IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0),
("v6Statistics", IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0),
("totalPacketsReceived", wintypes.DWORD),
("totalInvalidPacketsReceived", wintypes.DWORD),
("currentQueuedWorkitems", wintypes.DWORD),
]
class IKEEXT_STATISTICS0(ctypes.Structure):
_fields_ = [
("ikeStatistics", IKEEXT_KEYMODULE_STATISTICS0),
("authipStatistics", IKEEXT_KEYMODULE_STATISTICS0),
("commonStatistics", IKEEXT_COMMON_STATISTICS0),
]#[repr(C)]
pub struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 {
pub currentActiveMainModes: u32,
pub totalMainModesStarted: u32,
pub totalSuccessfulMainModes: u32,
pub totalFailedMainModes: u32,
pub totalResponderMainModes: u32,
pub currentNewResponderMainModes: u32,
pub currentActiveQuickModes: u32,
pub totalQuickModesStarted: u32,
pub totalSuccessfulQuickModes: u32,
pub totalFailedQuickModes: u32,
pub totalAcquires: u32,
pub totalReinitAcquires: u32,
pub currentActiveExtendedModes: u32,
pub totalExtendedModesStarted: u32,
pub totalSuccessfulExtendedModes: u32,
pub totalFailedExtendedModes: u32,
pub totalImpersonationExtendedModes: u32,
pub totalImpersonationMainModes: u32,
}
#[repr(C)]
pub struct IKEEXT_KEYMODULE_STATISTICS0 {
pub v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0,
pub v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0,
pub errorFrequencyTable: [u32; 97],
pub mainModeNegotiationTime: u32,
pub quickModeNegotiationTime: u32,
pub extendedModeNegotiationTime: u32,
}
#[repr(C)]
pub struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 {
pub totalSocketReceiveFailures: u32,
pub totalSocketSendFailures: u32,
}
#[repr(C)]
pub struct IKEEXT_COMMON_STATISTICS0 {
pub v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0,
pub v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0,
pub totalPacketsReceived: u32,
pub totalInvalidPacketsReceived: u32,
pub currentQueuedWorkitems: u32,
}
#[repr(C)]
pub struct IKEEXT_STATISTICS0 {
pub ikeStatistics: IKEEXT_KEYMODULE_STATISTICS0,
pub authipStatistics: IKEEXT_KEYMODULE_STATISTICS0,
pub commonStatistics: IKEEXT_COMMON_STATISTICS0,
}import "golang.org/x/sys/windows"
type IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 struct {
currentActiveMainModes uint32
totalMainModesStarted uint32
totalSuccessfulMainModes uint32
totalFailedMainModes uint32
totalResponderMainModes uint32
currentNewResponderMainModes uint32
currentActiveQuickModes uint32
totalQuickModesStarted uint32
totalSuccessfulQuickModes uint32
totalFailedQuickModes uint32
totalAcquires uint32
totalReinitAcquires uint32
currentActiveExtendedModes uint32
totalExtendedModesStarted uint32
totalSuccessfulExtendedModes uint32
totalFailedExtendedModes uint32
totalImpersonationExtendedModes uint32
totalImpersonationMainModes uint32
}
type IKEEXT_KEYMODULE_STATISTICS0 struct {
v4Statistics IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
v6Statistics IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
errorFrequencyTable [97]uint32
mainModeNegotiationTime uint32
quickModeNegotiationTime uint32
extendedModeNegotiationTime uint32
}
type IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 struct {
totalSocketReceiveFailures uint32
totalSocketSendFailures uint32
}
type IKEEXT_COMMON_STATISTICS0 struct {
v4Statistics IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
v6Statistics IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
totalPacketsReceived uint32
totalInvalidPacketsReceived uint32
currentQueuedWorkitems uint32
}
type IKEEXT_STATISTICS0 struct {
ikeStatistics IKEEXT_KEYMODULE_STATISTICS0
authipStatistics IKEEXT_KEYMODULE_STATISTICS0
commonStatistics IKEEXT_COMMON_STATISTICS0
}type
IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 = record
currentActiveMainModes: DWORD;
totalMainModesStarted: DWORD;
totalSuccessfulMainModes: DWORD;
totalFailedMainModes: DWORD;
totalResponderMainModes: DWORD;
currentNewResponderMainModes: DWORD;
currentActiveQuickModes: DWORD;
totalQuickModesStarted: DWORD;
totalSuccessfulQuickModes: DWORD;
totalFailedQuickModes: DWORD;
totalAcquires: DWORD;
totalReinitAcquires: DWORD;
currentActiveExtendedModes: DWORD;
totalExtendedModesStarted: DWORD;
totalSuccessfulExtendedModes: DWORD;
totalFailedExtendedModes: DWORD;
totalImpersonationExtendedModes: DWORD;
totalImpersonationMainModes: DWORD;
end;
IKEEXT_KEYMODULE_STATISTICS0 = record
v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0;
v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0;
errorFrequencyTable: array[0..96] of DWORD;
mainModeNegotiationTime: DWORD;
quickModeNegotiationTime: DWORD;
extendedModeNegotiationTime: DWORD;
end;
IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 = record
totalSocketReceiveFailures: DWORD;
totalSocketSendFailures: DWORD;
end;
IKEEXT_COMMON_STATISTICS0 = record
v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0;
v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0;
totalPacketsReceived: DWORD;
totalInvalidPacketsReceived: DWORD;
currentQueuedWorkitems: DWORD;
end;
IKEEXT_STATISTICS0 = record
ikeStatistics: IKEEXT_KEYMODULE_STATISTICS0;
authipStatistics: IKEEXT_KEYMODULE_STATISTICS0;
commonStatistics: IKEEXT_COMMON_STATISTICS0;
end;const IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 = extern struct {
currentActiveMainModes: u32,
totalMainModesStarted: u32,
totalSuccessfulMainModes: u32,
totalFailedMainModes: u32,
totalResponderMainModes: u32,
currentNewResponderMainModes: u32,
currentActiveQuickModes: u32,
totalQuickModesStarted: u32,
totalSuccessfulQuickModes: u32,
totalFailedQuickModes: u32,
totalAcquires: u32,
totalReinitAcquires: u32,
currentActiveExtendedModes: u32,
totalExtendedModesStarted: u32,
totalSuccessfulExtendedModes: u32,
totalFailedExtendedModes: u32,
totalImpersonationExtendedModes: u32,
totalImpersonationMainModes: u32,
};
const IKEEXT_KEYMODULE_STATISTICS0 = extern struct {
v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0,
v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0,
errorFrequencyTable: [97]u32,
mainModeNegotiationTime: u32,
quickModeNegotiationTime: u32,
extendedModeNegotiationTime: u32,
};
const IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 = extern struct {
totalSocketReceiveFailures: u32,
totalSocketSendFailures: u32,
};
const IKEEXT_COMMON_STATISTICS0 = extern struct {
v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0,
v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0,
totalPacketsReceived: u32,
totalInvalidPacketsReceived: u32,
currentQueuedWorkitems: u32,
};
const IKEEXT_STATISTICS0 = extern struct {
ikeStatistics: IKEEXT_KEYMODULE_STATISTICS0,
authipStatistics: IKEEXT_KEYMODULE_STATISTICS0,
commonStatistics: IKEEXT_COMMON_STATISTICS0,
};type
IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 {.bycopy.} = object
currentActiveMainModes: uint32
totalMainModesStarted: uint32
totalSuccessfulMainModes: uint32
totalFailedMainModes: uint32
totalResponderMainModes: uint32
currentNewResponderMainModes: uint32
currentActiveQuickModes: uint32
totalQuickModesStarted: uint32
totalSuccessfulQuickModes: uint32
totalFailedQuickModes: uint32
totalAcquires: uint32
totalReinitAcquires: uint32
currentActiveExtendedModes: uint32
totalExtendedModesStarted: uint32
totalSuccessfulExtendedModes: uint32
totalFailedExtendedModes: uint32
totalImpersonationExtendedModes: uint32
totalImpersonationMainModes: uint32
IKEEXT_KEYMODULE_STATISTICS0 {.bycopy.} = object
v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
errorFrequencyTable: array[97, uint32]
mainModeNegotiationTime: uint32
quickModeNegotiationTime: uint32
extendedModeNegotiationTime: uint32
IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 {.bycopy.} = object
totalSocketReceiveFailures: uint32
totalSocketSendFailures: uint32
IKEEXT_COMMON_STATISTICS0 {.bycopy.} = object
v4Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
v6Statistics: IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
totalPacketsReceived: uint32
totalInvalidPacketsReceived: uint32
currentQueuedWorkitems: uint32
IKEEXT_STATISTICS0 {.bycopy.} = object
ikeStatistics: IKEEXT_KEYMODULE_STATISTICS0
authipStatistics: IKEEXT_KEYMODULE_STATISTICS0
commonStatistics: IKEEXT_COMMON_STATISTICS0struct IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
{
uint currentActiveMainModes;
uint totalMainModesStarted;
uint totalSuccessfulMainModes;
uint totalFailedMainModes;
uint totalResponderMainModes;
uint currentNewResponderMainModes;
uint currentActiveQuickModes;
uint totalQuickModesStarted;
uint totalSuccessfulQuickModes;
uint totalFailedQuickModes;
uint totalAcquires;
uint totalReinitAcquires;
uint currentActiveExtendedModes;
uint totalExtendedModesStarted;
uint totalSuccessfulExtendedModes;
uint totalFailedExtendedModes;
uint totalImpersonationExtendedModes;
uint totalImpersonationMainModes;
}
struct IKEEXT_KEYMODULE_STATISTICS0
{
IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics;
IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics;
uint[97] errorFrequencyTable;
uint mainModeNegotiationTime;
uint quickModeNegotiationTime;
uint extendedModeNegotiationTime;
}
struct IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
{
uint totalSocketReceiveFailures;
uint totalSocketSendFailures;
}
struct IKEEXT_COMMON_STATISTICS0
{
IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics;
IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics;
uint totalPacketsReceived;
uint totalInvalidPacketsReceived;
uint currentQueuedWorkitems;
}
struct IKEEXT_STATISTICS0
{
IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics;
IKEEXT_KEYMODULE_STATISTICS0 authipStatistics;
IKEEXT_COMMON_STATISTICS0 commonStatistics;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; IKEEXT_STATISTICS0 サイズ: 1116 バイト(x64)
dim st, 279 ; 4byte整数×279(構造体サイズ 1116 / 4 切り上げ)
; ikeStatistics : IKEEXT_KEYMODULE_STATISTICS0 (+0, 544byte) varptr(st)+0 を基点に操作(544byte:入れ子/配列)
; authipStatistics : IKEEXT_KEYMODULE_STATISTICS0 (+544, 544byte) varptr(st)+544 を基点に操作(544byte:入れ子/配列)
; commonStatistics : IKEEXT_COMMON_STATISTICS0 (+1088, 28byte) varptr(st)+1088 を基点に操作(28byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0
#field int currentActiveMainModes
#field int totalMainModesStarted
#field int totalSuccessfulMainModes
#field int totalFailedMainModes
#field int totalResponderMainModes
#field int currentNewResponderMainModes
#field int currentActiveQuickModes
#field int totalQuickModesStarted
#field int totalSuccessfulQuickModes
#field int totalFailedQuickModes
#field int totalAcquires
#field int totalReinitAcquires
#field int currentActiveExtendedModes
#field int totalExtendedModesStarted
#field int totalSuccessfulExtendedModes
#field int totalFailedExtendedModes
#field int totalImpersonationExtendedModes
#field int totalImpersonationMainModes
#endstruct
#defstruct global IKEEXT_KEYMODULE_STATISTICS0
#field IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v4Statistics
#field IKEEXT_IP_VERSION_SPECIFIC_KEYMODULE_STATISTICS0 v6Statistics
#field int errorFrequencyTable 97
#field int mainModeNegotiationTime
#field int quickModeNegotiationTime
#field int extendedModeNegotiationTime
#endstruct
#defstruct global IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0
#field int totalSocketReceiveFailures
#field int totalSocketSendFailures
#endstruct
#defstruct global IKEEXT_COMMON_STATISTICS0
#field IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v4Statistics
#field IKEEXT_IP_VERSION_SPECIFIC_COMMON_STATISTICS0 v6Statistics
#field int totalPacketsReceived
#field int totalInvalidPacketsReceived
#field int currentQueuedWorkitems
#endstruct
#defstruct global IKEEXT_STATISTICS0
#field IKEEXT_KEYMODULE_STATISTICS0 ikeStatistics
#field IKEEXT_KEYMODULE_STATISTICS0 authipStatistics
#field IKEEXT_COMMON_STATISTICS0 commonStatistics
#endstruct
stdim st, IKEEXT_STATISTICS0 ; NSTRUCT 変数を確保