ホーム › NetworkManagement.Rras › RASENTRYA
RASENTRYA
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| dwSize | DWORD | 4 | +0 | +0 | この構造体のバイト単位のサイズ。呼び出し前にsizeofを設定する。 |
| dwfOptions | DWORD | 4 | +4 | +4 | 接続エントリの動作を制御するRASEO_*オプションフラグ。 |
| dwCountryID | DWORD | 4 | +8 | +8 | ダイヤルに使用するTAPIの国/地域ID。 |
| dwCountryCode | DWORD | 4 | +12 | +12 | ダイヤルに使用する国際電話の国番号。 |
| szAreaCode | CHAR | 11 | +16 | +16 | 市外局番を表すANSI文字列。 |
| szLocalPhoneNumber | CHAR | 129 | +27 | +27 | ローカル電話番号を表すANSI文字列。 |
| dwAlternateOffset | DWORD | 4 | +156 | +156 | 代替電話番号リストへの構造体先頭からのバイトオフセット。 |
| ipaddr | RASIPADDR | 4 | +160 | +160 | クライアント固定IPアドレス(RASIPADDR構造体)。 |
| ipaddrDns | RASIPADDR | 4 | +164 | +164 | プライマリDNSサーバーのIPアドレス。 |
| ipaddrDnsAlt | RASIPADDR | 4 | +168 | +168 | 代替DNSサーバーのIPアドレス。 |
| ipaddrWins | RASIPADDR | 4 | +172 | +172 | プライマリWINSサーバーのIPアドレス。 |
| ipaddrWinsAlt | RASIPADDR | 4 | +176 | +176 | 代替WINSサーバーのIPアドレス。 |
| dwFrameSize | DWORD | 4 | +180 | +180 | ネットワークフレームのサイズ(バイト)。 |
| dwfNetProtocols | DWORD | 4 | +184 | +184 | 使用するネットワークプロトコルのフラグ(RASNP_*)。 |
| dwFramingProtocol | DWORD | 4 | +188 | +188 | 使用するフレーミングプロトコル(RASFP_*)。PPP等。 |
| szScript | CHAR | 260 | +192 | +192 | 接続後に実行するスクリプトファイルのパス(ANSI文字列)。 |
| szAutodialDll | CHAR | 260 | +452 | +452 | 自動ダイヤルに使用するDLLのパス(ANSI文字列)。 |
| szAutodialFunc | CHAR | 260 | +712 | +712 | 自動ダイヤルDLL内の関数名(ANSI文字列)。 |
| szDeviceType | CHAR | 17 | +972 | +972 | 接続に使用するデバイスの種別(ANSI文字列)。 |
| szDeviceName | CHAR | 129 | +989 | +989 | 接続に使用するデバイスの名前(ANSI文字列)。 |
| szX25PadType | CHAR | 33 | +1118 | +1118 | X.25 PADタイプを表すANSI文字列。X.25接続用。 |
| szX25Address | CHAR | 201 | +1151 | +1151 | X.25ネットワークのアドレス(ANSI文字列)。 |
| szX25Facilities | CHAR | 201 | +1352 | +1352 | X.25呼設定の追加機能を表すANSI文字列。 |
| szX25UserData | CHAR | 201 | +1553 | +1553 | X.25接続時にPADへ送るユーザーデータ(ANSI文字列)。 |
| dwChannels | DWORD | 4 | +1756 | +1756 | ISDN等で使用するチャネル数。 |
| dwReserved1 | DWORD | 4 | +1760 | +1760 | 予約済み。0を設定する。 |
| dwReserved2 | DWORD | 4 | +1764 | +1764 | 予約済み。0を設定する。 |
| dwSubEntries | DWORD | 4 | +1768 | +1768 | このエントリに含まれるサブエントリ(マルチリンク)の数。 |
| dwDialMode | RASENTRY_DIAL_MODE | 4 | +1772 | +1772 | マルチリンクのダイヤル方式を表すRASENTRY_DIAL_MODE列挙値。 |
| dwDialExtraPercent | DWORD | 4 | +1776 | +1776 | 回線追加発呼の閾値となる帯域使用率(%)。 |
| dwDialExtraSampleSeconds | DWORD | 4 | +1780 | +1780 | 回線追加判定のための帯域サンプリング秒数。 |
| dwHangUpExtraPercent | DWORD | 4 | +1784 | +1784 | 回線切断発火の閾値となる帯域使用率(%)。 |
| dwHangUpExtraSampleSeconds | DWORD | 4 | +1788 | +1788 | 回線切断判定のための帯域サンプリング秒数。 |
| dwIdleDisconnectSeconds | DWORD | 4 | +1792 | +1792 | アイドル状態が続いた場合に自動切断するまでの秒数。 |
| dwType | DWORD | 4 | +1796 | +1796 | エントリの種別(RASET_*)。Phone/VPN/Direct/Broadband等。 |
| dwEncryptionType | DWORD | 4 | +1800 | +1800 | データ暗号化の種別を表す列挙値(ET_*)。 |
| dwCustomAuthKey | DWORD | 4 | +1804 | +1804 | カスタムEAP認証で使用するキー値。 |
| guidId | GUID | 16 | +1808 | +1808 | この電話帳エントリを一意に識別するGUID。 |
| szCustomDialDll | CHAR | 260 | +1824 | +1824 | カスタムダイヤラーDLLのパス(ANSI文字列)。 |
| dwVpnStrategy | DWORD | 4 | +2084 | +2084 | VPN接続で試行するトンネルプロトコル戦略(VS_*)。 |
| dwfOptions2 | DWORD | 4 | +2088 | +2088 | 追加のオプションフラグ第2セット(RASEO2_*)。 |
| dwfOptions3 | DWORD | 4 | +2092 | +2092 | 追加のオプションフラグ第3セット。 |
| szDnsSuffix | CHAR | 256 | +2096 | +2096 | 接続に使用するDNSサフィックス(ANSI文字列)。 |
| dwTcpWindowSize | DWORD | 4 | +2352 | +2352 | 接続のTCPウィンドウサイズ(バイト)。 |
| szPrerequisitePbk | CHAR | 260 | +2356 | +2356 | 前提接続のための電話帳ファイルパス(ANSI文字列)。 |
| szPrerequisiteEntry | CHAR | 257 | +2616 | +2616 | 前提となる接続エントリ名(ANSI文字列)。ダブルダイヤル用。 |
| dwRedialCount | DWORD | 4 | +2876 | +2876 | 接続失敗時の再ダイヤル回数。 |
| dwRedialPause | DWORD | 4 | +2880 | +2880 | 再ダイヤル試行間の待機秒数。 |
| ipv6addrDns | IN6_ADDR | 16 | +2884 | +2884 | プライマリIPv6 DNSサーバーのアドレス。 |
| ipv6addrDnsAlt | IN6_ADDR | 16 | +2900 | +2900 | 代替IPv6 DNSサーバーのアドレス。 |
| dwIPv4InterfaceMetric | DWORD | 4 | +2916 | +2916 | IPv4インターフェイスのルーティングメトリック。 |
| dwIPv6InterfaceMetric | DWORD | 4 | +2920 | +2920 | IPv6インターフェイスのルーティングメトリック。 |
| ipv6addr | IN6_ADDR | 16 | +2924 | +2924 | クライアント固定IPv6アドレス。 |
| dwIPv6PrefixLength | DWORD | 4 | +2940 | +2940 | クライアントIPv6アドレスのプレフィックス長(ビット)。 |
| dwNetworkOutageTime | DWORD | 4 | +2944 | +2944 | ネットワーク中断を許容する時間(IKEv2の再接続用、秒)。 |
| szIDi | CHAR | 257 | +2948 | +2948 | IKEv2でローカル(イニシエータ)を識別するID文字列(ANSI)。 |
| szIDr | CHAR | 257 | +3205 | +3205 | IKEv2でリモート(レスポンダ)を識別するID文字列(ANSI)。 |
| fIsImsConfig | BOOL | 4 | +3464 | +3464 | TRUEならIMS(IP Multimedia Subsystem)設定であることを示す。 |
| IdiType | IKEV2_ID_PAYLOAD_TYPE | 4 | +3468 | +3468 | szIDiのIKEv2 IDペイロード種別(IKEV2_ID_PAYLOAD_TYPE)。 |
| IdrType | IKEV2_ID_PAYLOAD_TYPE | 4 | +3472 | +3472 | szIDrのIKEv2 IDペイロード種別(IKEV2_ID_PAYLOAD_TYPE)。 |
| fDisableIKEv2Fragmentation | BOOL | 4 | +3476 | +3476 | TRUEならIKEv2フラグメンテーションを無効化する。 |
各言語での定義
#include <windows.h>
// RASIPADDR (x64 4 / x86 4 バイト)
typedef struct RASIPADDR {
BYTE a;
BYTE b;
BYTE c;
BYTE d;
} RASIPADDR;
// IN6_ADDR (x64 16 / x86 16 バイト)
typedef struct IN6_ADDR {
_u_e__Union u;
} IN6_ADDR;
// RASENTRYA (x64 3480 / x86 3480 バイト)
typedef struct RASENTRYA {
DWORD dwSize;
DWORD dwfOptions;
DWORD dwCountryID;
DWORD dwCountryCode;
CHAR szAreaCode[11];
CHAR szLocalPhoneNumber[129];
DWORD dwAlternateOffset;
RASIPADDR ipaddr;
RASIPADDR ipaddrDns;
RASIPADDR ipaddrDnsAlt;
RASIPADDR ipaddrWins;
RASIPADDR ipaddrWinsAlt;
DWORD dwFrameSize;
DWORD dwfNetProtocols;
DWORD dwFramingProtocol;
CHAR szScript[260];
CHAR szAutodialDll[260];
CHAR szAutodialFunc[260];
CHAR szDeviceType[17];
CHAR szDeviceName[129];
CHAR szX25PadType[33];
CHAR szX25Address[201];
CHAR szX25Facilities[201];
CHAR szX25UserData[201];
DWORD dwChannels;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwSubEntries;
RASENTRY_DIAL_MODE dwDialMode;
DWORD dwDialExtraPercent;
DWORD dwDialExtraSampleSeconds;
DWORD dwHangUpExtraPercent;
DWORD dwHangUpExtraSampleSeconds;
DWORD dwIdleDisconnectSeconds;
DWORD dwType;
DWORD dwEncryptionType;
DWORD dwCustomAuthKey;
GUID guidId;
CHAR szCustomDialDll[260];
DWORD dwVpnStrategy;
DWORD dwfOptions2;
DWORD dwfOptions3;
CHAR szDnsSuffix[256];
DWORD dwTcpWindowSize;
CHAR szPrerequisitePbk[260];
CHAR szPrerequisiteEntry[257];
DWORD dwRedialCount;
DWORD dwRedialPause;
IN6_ADDR ipv6addrDns;
IN6_ADDR ipv6addrDnsAlt;
DWORD dwIPv4InterfaceMetric;
DWORD dwIPv6InterfaceMetric;
IN6_ADDR ipv6addr;
DWORD dwIPv6PrefixLength;
DWORD dwNetworkOutageTime;
CHAR szIDi[257];
CHAR szIDr[257];
BOOL fIsImsConfig;
IKEV2_ID_PAYLOAD_TYPE IdiType;
IKEV2_ID_PAYLOAD_TYPE IdrType;
BOOL fDisableIKEv2Fragmentation;
} RASENTRYA;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct RASIPADDR
{
public byte a;
public byte b;
public byte c;
public byte d;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IN6_ADDR
{
public _u_e__Union u;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct RASENTRYA
{
public uint dwSize;
public uint dwfOptions;
public uint dwCountryID;
public uint dwCountryCode;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 11)] public sbyte[] szAreaCode;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 129)] public sbyte[] szLocalPhoneNumber;
public uint dwAlternateOffset;
public RASIPADDR ipaddr;
public RASIPADDR ipaddrDns;
public RASIPADDR ipaddrDnsAlt;
public RASIPADDR ipaddrWins;
public RASIPADDR ipaddrWinsAlt;
public uint dwFrameSize;
public uint dwfNetProtocols;
public uint dwFramingProtocol;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 260)] public sbyte[] szScript;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 260)] public sbyte[] szAutodialDll;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 260)] public sbyte[] szAutodialFunc;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 17)] public sbyte[] szDeviceType;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 129)] public sbyte[] szDeviceName;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 33)] public sbyte[] szX25PadType;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 201)] public sbyte[] szX25Address;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 201)] public sbyte[] szX25Facilities;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 201)] public sbyte[] szX25UserData;
public uint dwChannels;
public uint dwReserved1;
public uint dwReserved2;
public uint dwSubEntries;
public uint dwDialMode;
public uint dwDialExtraPercent;
public uint dwDialExtraSampleSeconds;
public uint dwHangUpExtraPercent;
public uint dwHangUpExtraSampleSeconds;
public uint dwIdleDisconnectSeconds;
public uint dwType;
public uint dwEncryptionType;
public uint dwCustomAuthKey;
public Guid guidId;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 260)] public sbyte[] szCustomDialDll;
public uint dwVpnStrategy;
public uint dwfOptions2;
public uint dwfOptions3;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public sbyte[] szDnsSuffix;
public uint dwTcpWindowSize;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 260)] public sbyte[] szPrerequisitePbk;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 257)] public sbyte[] szPrerequisiteEntry;
public uint dwRedialCount;
public uint dwRedialPause;
public IN6_ADDR ipv6addrDns;
public IN6_ADDR ipv6addrDnsAlt;
public uint dwIPv4InterfaceMetric;
public uint dwIPv6InterfaceMetric;
public IN6_ADDR ipv6addr;
public uint dwIPv6PrefixLength;
public uint dwNetworkOutageTime;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 257)] public sbyte[] szIDi;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 257)] public sbyte[] szIDr;
[MarshalAs(UnmanagedType.Bool)] public bool fIsImsConfig;
public int IdiType;
public int IdrType;
[MarshalAs(UnmanagedType.Bool)] public bool fDisableIKEv2Fragmentation;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure RASIPADDR
Public a As Byte
Public b As Byte
Public c As Byte
Public d As Byte
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure IN6_ADDR
Public u As _u_e__Union
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure RASENTRYA
Public dwSize As UInteger
Public dwfOptions As UInteger
Public dwCountryID As UInteger
Public dwCountryCode As UInteger
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=11)> Public szAreaCode() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=129)> Public szLocalPhoneNumber() As SByte
Public dwAlternateOffset As UInteger
Public ipaddr As RASIPADDR
Public ipaddrDns As RASIPADDR
Public ipaddrDnsAlt As RASIPADDR
Public ipaddrWins As RASIPADDR
Public ipaddrWinsAlt As RASIPADDR
Public dwFrameSize As UInteger
Public dwfNetProtocols As UInteger
Public dwFramingProtocol As UInteger
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=260)> Public szScript() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=260)> Public szAutodialDll() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=260)> Public szAutodialFunc() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=17)> Public szDeviceType() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=129)> Public szDeviceName() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=33)> Public szX25PadType() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=201)> Public szX25Address() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=201)> Public szX25Facilities() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=201)> Public szX25UserData() As SByte
Public dwChannels As UInteger
Public dwReserved1 As UInteger
Public dwReserved2 As UInteger
Public dwSubEntries As UInteger
Public dwDialMode As UInteger
Public dwDialExtraPercent As UInteger
Public dwDialExtraSampleSeconds As UInteger
Public dwHangUpExtraPercent As UInteger
Public dwHangUpExtraSampleSeconds As UInteger
Public dwIdleDisconnectSeconds As UInteger
Public dwType As UInteger
Public dwEncryptionType As UInteger
Public dwCustomAuthKey As UInteger
Public guidId As Guid
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=260)> Public szCustomDialDll() As SByte
Public dwVpnStrategy As UInteger
Public dwfOptions2 As UInteger
Public dwfOptions3 As UInteger
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=256)> Public szDnsSuffix() As SByte
Public dwTcpWindowSize As UInteger
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=260)> Public szPrerequisitePbk() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=257)> Public szPrerequisiteEntry() As SByte
Public dwRedialCount As UInteger
Public dwRedialPause As UInteger
Public ipv6addrDns As IN6_ADDR
Public ipv6addrDnsAlt As IN6_ADDR
Public dwIPv4InterfaceMetric As UInteger
Public dwIPv6InterfaceMetric As UInteger
Public ipv6addr As IN6_ADDR
Public dwIPv6PrefixLength As UInteger
Public dwNetworkOutageTime As UInteger
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=257)> Public szIDi() As SByte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=257)> Public szIDr() As SByte
<MarshalAs(UnmanagedType.Bool)> Public fIsImsConfig As Boolean
Public IdiType As Integer
Public IdrType As Integer
<MarshalAs(UnmanagedType.Bool)> Public fDisableIKEv2Fragmentation As Boolean
End Structureimport ctypes
from ctypes import wintypes
class RASIPADDR(ctypes.Structure):
_fields_ = [
("a", ctypes.c_ubyte),
("b", ctypes.c_ubyte),
("c", ctypes.c_ubyte),
("d", ctypes.c_ubyte),
]
class IN6_ADDR(ctypes.Structure):
_fields_ = [
("u", _u_e__Union),
]
class RASENTRYA(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwfOptions", wintypes.DWORD),
("dwCountryID", wintypes.DWORD),
("dwCountryCode", wintypes.DWORD),
("szAreaCode", ctypes.c_byte * 11),
("szLocalPhoneNumber", ctypes.c_byte * 129),
("dwAlternateOffset", wintypes.DWORD),
("ipaddr", RASIPADDR),
("ipaddrDns", RASIPADDR),
("ipaddrDnsAlt", RASIPADDR),
("ipaddrWins", RASIPADDR),
("ipaddrWinsAlt", RASIPADDR),
("dwFrameSize", wintypes.DWORD),
("dwfNetProtocols", wintypes.DWORD),
("dwFramingProtocol", wintypes.DWORD),
("szScript", ctypes.c_byte * 260),
("szAutodialDll", ctypes.c_byte * 260),
("szAutodialFunc", ctypes.c_byte * 260),
("szDeviceType", ctypes.c_byte * 17),
("szDeviceName", ctypes.c_byte * 129),
("szX25PadType", ctypes.c_byte * 33),
("szX25Address", ctypes.c_byte * 201),
("szX25Facilities", ctypes.c_byte * 201),
("szX25UserData", ctypes.c_byte * 201),
("dwChannels", wintypes.DWORD),
("dwReserved1", wintypes.DWORD),
("dwReserved2", wintypes.DWORD),
("dwSubEntries", wintypes.DWORD),
("dwDialMode", wintypes.DWORD),
("dwDialExtraPercent", wintypes.DWORD),
("dwDialExtraSampleSeconds", wintypes.DWORD),
("dwHangUpExtraPercent", wintypes.DWORD),
("dwHangUpExtraSampleSeconds", wintypes.DWORD),
("dwIdleDisconnectSeconds", wintypes.DWORD),
("dwType", wintypes.DWORD),
("dwEncryptionType", wintypes.DWORD),
("dwCustomAuthKey", wintypes.DWORD),
("guidId", GUID),
("szCustomDialDll", ctypes.c_byte * 260),
("dwVpnStrategy", wintypes.DWORD),
("dwfOptions2", wintypes.DWORD),
("dwfOptions3", wintypes.DWORD),
("szDnsSuffix", ctypes.c_byte * 256),
("dwTcpWindowSize", wintypes.DWORD),
("szPrerequisitePbk", ctypes.c_byte * 260),
("szPrerequisiteEntry", ctypes.c_byte * 257),
("dwRedialCount", wintypes.DWORD),
("dwRedialPause", wintypes.DWORD),
("ipv6addrDns", IN6_ADDR),
("ipv6addrDnsAlt", IN6_ADDR),
("dwIPv4InterfaceMetric", wintypes.DWORD),
("dwIPv6InterfaceMetric", wintypes.DWORD),
("ipv6addr", IN6_ADDR),
("dwIPv6PrefixLength", wintypes.DWORD),
("dwNetworkOutageTime", wintypes.DWORD),
("szIDi", ctypes.c_byte * 257),
("szIDr", ctypes.c_byte * 257),
("fIsImsConfig", wintypes.BOOL),
("IdiType", ctypes.c_int),
("IdrType", ctypes.c_int),
("fDisableIKEv2Fragmentation", wintypes.BOOL),
]#[repr(C)]
pub struct RASIPADDR {
pub a: u8,
pub b: u8,
pub c: u8,
pub d: u8,
}
#[repr(C)]
pub struct IN6_ADDR {
pub u: _u_e__Union,
}
#[repr(C)]
pub struct RASENTRYA {
pub dwSize: u32,
pub dwfOptions: u32,
pub dwCountryID: u32,
pub dwCountryCode: u32,
pub szAreaCode: [i8; 11],
pub szLocalPhoneNumber: [i8; 129],
pub dwAlternateOffset: u32,
pub ipaddr: RASIPADDR,
pub ipaddrDns: RASIPADDR,
pub ipaddrDnsAlt: RASIPADDR,
pub ipaddrWins: RASIPADDR,
pub ipaddrWinsAlt: RASIPADDR,
pub dwFrameSize: u32,
pub dwfNetProtocols: u32,
pub dwFramingProtocol: u32,
pub szScript: [i8; 260],
pub szAutodialDll: [i8; 260],
pub szAutodialFunc: [i8; 260],
pub szDeviceType: [i8; 17],
pub szDeviceName: [i8; 129],
pub szX25PadType: [i8; 33],
pub szX25Address: [i8; 201],
pub szX25Facilities: [i8; 201],
pub szX25UserData: [i8; 201],
pub dwChannels: u32,
pub dwReserved1: u32,
pub dwReserved2: u32,
pub dwSubEntries: u32,
pub dwDialMode: u32,
pub dwDialExtraPercent: u32,
pub dwDialExtraSampleSeconds: u32,
pub dwHangUpExtraPercent: u32,
pub dwHangUpExtraSampleSeconds: u32,
pub dwIdleDisconnectSeconds: u32,
pub dwType: u32,
pub dwEncryptionType: u32,
pub dwCustomAuthKey: u32,
pub guidId: GUID,
pub szCustomDialDll: [i8; 260],
pub dwVpnStrategy: u32,
pub dwfOptions2: u32,
pub dwfOptions3: u32,
pub szDnsSuffix: [i8; 256],
pub dwTcpWindowSize: u32,
pub szPrerequisitePbk: [i8; 260],
pub szPrerequisiteEntry: [i8; 257],
pub dwRedialCount: u32,
pub dwRedialPause: u32,
pub ipv6addrDns: IN6_ADDR,
pub ipv6addrDnsAlt: IN6_ADDR,
pub dwIPv4InterfaceMetric: u32,
pub dwIPv6InterfaceMetric: u32,
pub ipv6addr: IN6_ADDR,
pub dwIPv6PrefixLength: u32,
pub dwNetworkOutageTime: u32,
pub szIDi: [i8; 257],
pub szIDr: [i8; 257],
pub fIsImsConfig: i32,
pub IdiType: i32,
pub IdrType: i32,
pub fDisableIKEv2Fragmentation: i32,
}import "golang.org/x/sys/windows"
type RASIPADDR struct {
a byte
b byte
c byte
d byte
}
type IN6_ADDR struct {
u _u_e__Union
}
type RASENTRYA struct {
dwSize uint32
dwfOptions uint32
dwCountryID uint32
dwCountryCode uint32
szAreaCode [11]int8
szLocalPhoneNumber [129]int8
dwAlternateOffset uint32
ipaddr RASIPADDR
ipaddrDns RASIPADDR
ipaddrDnsAlt RASIPADDR
ipaddrWins RASIPADDR
ipaddrWinsAlt RASIPADDR
dwFrameSize uint32
dwfNetProtocols uint32
dwFramingProtocol uint32
szScript [260]int8
szAutodialDll [260]int8
szAutodialFunc [260]int8
szDeviceType [17]int8
szDeviceName [129]int8
szX25PadType [33]int8
szX25Address [201]int8
szX25Facilities [201]int8
szX25UserData [201]int8
dwChannels uint32
dwReserved1 uint32
dwReserved2 uint32
dwSubEntries uint32
dwDialMode uint32
dwDialExtraPercent uint32
dwDialExtraSampleSeconds uint32
dwHangUpExtraPercent uint32
dwHangUpExtraSampleSeconds uint32
dwIdleDisconnectSeconds uint32
dwType uint32
dwEncryptionType uint32
dwCustomAuthKey uint32
guidId windows.GUID
szCustomDialDll [260]int8
dwVpnStrategy uint32
dwfOptions2 uint32
dwfOptions3 uint32
szDnsSuffix [256]int8
dwTcpWindowSize uint32
szPrerequisitePbk [260]int8
szPrerequisiteEntry [257]int8
dwRedialCount uint32
dwRedialPause uint32
ipv6addrDns IN6_ADDR
ipv6addrDnsAlt IN6_ADDR
dwIPv4InterfaceMetric uint32
dwIPv6InterfaceMetric uint32
ipv6addr IN6_ADDR
dwIPv6PrefixLength uint32
dwNetworkOutageTime uint32
szIDi [257]int8
szIDr [257]int8
fIsImsConfig int32
IdiType int32
IdrType int32
fDisableIKEv2Fragmentation int32
}type
RASIPADDR = record
a: Byte;
b: Byte;
c: Byte;
d: Byte;
end;
IN6_ADDR = record
u: _u_e__Union;
end;
RASENTRYA = record
dwSize: DWORD;
dwfOptions: DWORD;
dwCountryID: DWORD;
dwCountryCode: DWORD;
szAreaCode: array[0..10] of Shortint;
szLocalPhoneNumber: array[0..128] of Shortint;
dwAlternateOffset: DWORD;
ipaddr: RASIPADDR;
ipaddrDns: RASIPADDR;
ipaddrDnsAlt: RASIPADDR;
ipaddrWins: RASIPADDR;
ipaddrWinsAlt: RASIPADDR;
dwFrameSize: DWORD;
dwfNetProtocols: DWORD;
dwFramingProtocol: DWORD;
szScript: array[0..259] of Shortint;
szAutodialDll: array[0..259] of Shortint;
szAutodialFunc: array[0..259] of Shortint;
szDeviceType: array[0..16] of Shortint;
szDeviceName: array[0..128] of Shortint;
szX25PadType: array[0..32] of Shortint;
szX25Address: array[0..200] of Shortint;
szX25Facilities: array[0..200] of Shortint;
szX25UserData: array[0..200] of Shortint;
dwChannels: DWORD;
dwReserved1: DWORD;
dwReserved2: DWORD;
dwSubEntries: DWORD;
dwDialMode: DWORD;
dwDialExtraPercent: DWORD;
dwDialExtraSampleSeconds: DWORD;
dwHangUpExtraPercent: DWORD;
dwHangUpExtraSampleSeconds: DWORD;
dwIdleDisconnectSeconds: DWORD;
dwType: DWORD;
dwEncryptionType: DWORD;
dwCustomAuthKey: DWORD;
guidId: TGUID;
szCustomDialDll: array[0..259] of Shortint;
dwVpnStrategy: DWORD;
dwfOptions2: DWORD;
dwfOptions3: DWORD;
szDnsSuffix: array[0..255] of Shortint;
dwTcpWindowSize: DWORD;
szPrerequisitePbk: array[0..259] of Shortint;
szPrerequisiteEntry: array[0..256] of Shortint;
dwRedialCount: DWORD;
dwRedialPause: DWORD;
ipv6addrDns: IN6_ADDR;
ipv6addrDnsAlt: IN6_ADDR;
dwIPv4InterfaceMetric: DWORD;
dwIPv6InterfaceMetric: DWORD;
ipv6addr: IN6_ADDR;
dwIPv6PrefixLength: DWORD;
dwNetworkOutageTime: DWORD;
szIDi: array[0..256] of Shortint;
szIDr: array[0..256] of Shortint;
fIsImsConfig: BOOL;
IdiType: Integer;
IdrType: Integer;
fDisableIKEv2Fragmentation: BOOL;
end;const RASIPADDR = extern struct {
a: u8,
b: u8,
c: u8,
d: u8,
};
const IN6_ADDR = extern struct {
u: _u_e__Union,
};
const RASENTRYA = extern struct {
dwSize: u32,
dwfOptions: u32,
dwCountryID: u32,
dwCountryCode: u32,
szAreaCode: [11]i8,
szLocalPhoneNumber: [129]i8,
dwAlternateOffset: u32,
ipaddr: RASIPADDR,
ipaddrDns: RASIPADDR,
ipaddrDnsAlt: RASIPADDR,
ipaddrWins: RASIPADDR,
ipaddrWinsAlt: RASIPADDR,
dwFrameSize: u32,
dwfNetProtocols: u32,
dwFramingProtocol: u32,
szScript: [260]i8,
szAutodialDll: [260]i8,
szAutodialFunc: [260]i8,
szDeviceType: [17]i8,
szDeviceName: [129]i8,
szX25PadType: [33]i8,
szX25Address: [201]i8,
szX25Facilities: [201]i8,
szX25UserData: [201]i8,
dwChannels: u32,
dwReserved1: u32,
dwReserved2: u32,
dwSubEntries: u32,
dwDialMode: u32,
dwDialExtraPercent: u32,
dwDialExtraSampleSeconds: u32,
dwHangUpExtraPercent: u32,
dwHangUpExtraSampleSeconds: u32,
dwIdleDisconnectSeconds: u32,
dwType: u32,
dwEncryptionType: u32,
dwCustomAuthKey: u32,
guidId: GUID,
szCustomDialDll: [260]i8,
dwVpnStrategy: u32,
dwfOptions2: u32,
dwfOptions3: u32,
szDnsSuffix: [256]i8,
dwTcpWindowSize: u32,
szPrerequisitePbk: [260]i8,
szPrerequisiteEntry: [257]i8,
dwRedialCount: u32,
dwRedialPause: u32,
ipv6addrDns: IN6_ADDR,
ipv6addrDnsAlt: IN6_ADDR,
dwIPv4InterfaceMetric: u32,
dwIPv6InterfaceMetric: u32,
ipv6addr: IN6_ADDR,
dwIPv6PrefixLength: u32,
dwNetworkOutageTime: u32,
szIDi: [257]i8,
szIDr: [257]i8,
fIsImsConfig: i32,
IdiType: i32,
IdrType: i32,
fDisableIKEv2Fragmentation: i32,
};type
RASIPADDR {.bycopy.} = object
a: uint8
b: uint8
c: uint8
d: uint8
IN6_ADDR {.bycopy.} = object
u: _u_e__Union
RASENTRYA {.bycopy.} = object
dwSize: uint32
dwfOptions: uint32
dwCountryID: uint32
dwCountryCode: uint32
szAreaCode: array[11, int8]
szLocalPhoneNumber: array[129, int8]
dwAlternateOffset: uint32
ipaddr: RASIPADDR
ipaddrDns: RASIPADDR
ipaddrDnsAlt: RASIPADDR
ipaddrWins: RASIPADDR
ipaddrWinsAlt: RASIPADDR
dwFrameSize: uint32
dwfNetProtocols: uint32
dwFramingProtocol: uint32
szScript: array[260, int8]
szAutodialDll: array[260, int8]
szAutodialFunc: array[260, int8]
szDeviceType: array[17, int8]
szDeviceName: array[129, int8]
szX25PadType: array[33, int8]
szX25Address: array[201, int8]
szX25Facilities: array[201, int8]
szX25UserData: array[201, int8]
dwChannels: uint32
dwReserved1: uint32
dwReserved2: uint32
dwSubEntries: uint32
dwDialMode: uint32
dwDialExtraPercent: uint32
dwDialExtraSampleSeconds: uint32
dwHangUpExtraPercent: uint32
dwHangUpExtraSampleSeconds: uint32
dwIdleDisconnectSeconds: uint32
dwType: uint32
dwEncryptionType: uint32
dwCustomAuthKey: uint32
guidId: GUID
szCustomDialDll: array[260, int8]
dwVpnStrategy: uint32
dwfOptions2: uint32
dwfOptions3: uint32
szDnsSuffix: array[256, int8]
dwTcpWindowSize: uint32
szPrerequisitePbk: array[260, int8]
szPrerequisiteEntry: array[257, int8]
dwRedialCount: uint32
dwRedialPause: uint32
ipv6addrDns: IN6_ADDR
ipv6addrDnsAlt: IN6_ADDR
dwIPv4InterfaceMetric: uint32
dwIPv6InterfaceMetric: uint32
ipv6addr: IN6_ADDR
dwIPv6PrefixLength: uint32
dwNetworkOutageTime: uint32
szIDi: array[257, int8]
szIDr: array[257, int8]
fIsImsConfig: int32
IdiType: int32
IdrType: int32
fDisableIKEv2Fragmentation: int32struct RASIPADDR
{
ubyte a;
ubyte b;
ubyte c;
ubyte d;
}
struct IN6_ADDR
{
_u_e__Union u;
}
struct RASENTRYA
{
uint dwSize;
uint dwfOptions;
uint dwCountryID;
uint dwCountryCode;
byte[11] szAreaCode;
byte[129] szLocalPhoneNumber;
uint dwAlternateOffset;
RASIPADDR ipaddr;
RASIPADDR ipaddrDns;
RASIPADDR ipaddrDnsAlt;
RASIPADDR ipaddrWins;
RASIPADDR ipaddrWinsAlt;
uint dwFrameSize;
uint dwfNetProtocols;
uint dwFramingProtocol;
byte[260] szScript;
byte[260] szAutodialDll;
byte[260] szAutodialFunc;
byte[17] szDeviceType;
byte[129] szDeviceName;
byte[33] szX25PadType;
byte[201] szX25Address;
byte[201] szX25Facilities;
byte[201] szX25UserData;
uint dwChannels;
uint dwReserved1;
uint dwReserved2;
uint dwSubEntries;
uint dwDialMode;
uint dwDialExtraPercent;
uint dwDialExtraSampleSeconds;
uint dwHangUpExtraPercent;
uint dwHangUpExtraSampleSeconds;
uint dwIdleDisconnectSeconds;
uint dwType;
uint dwEncryptionType;
uint dwCustomAuthKey;
GUID guidId;
byte[260] szCustomDialDll;
uint dwVpnStrategy;
uint dwfOptions2;
uint dwfOptions3;
byte[256] szDnsSuffix;
uint dwTcpWindowSize;
byte[260] szPrerequisitePbk;
byte[257] szPrerequisiteEntry;
uint dwRedialCount;
uint dwRedialPause;
IN6_ADDR ipv6addrDns;
IN6_ADDR ipv6addrDnsAlt;
uint dwIPv4InterfaceMetric;
uint dwIPv6InterfaceMetric;
IN6_ADDR ipv6addr;
uint dwIPv6PrefixLength;
uint dwNetworkOutageTime;
byte[257] szIDi;
byte[257] szIDr;
int fIsImsConfig;
int IdiType;
int IdrType;
int fDisableIKEv2Fragmentation;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; RASENTRYA サイズ: 3480 バイト(x64)
dim st, 870 ; 4byte整数×870(構造体サイズ 3480 / 4 切り上げ)
; dwSize : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; dwfOptions : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; dwCountryID : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; dwCountryCode : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; szAreaCode : CHAR (+16, 11byte) varptr(st)+16 を基点に操作(11byte:入れ子/配列)
; szLocalPhoneNumber : CHAR (+27, 129byte) varptr(st)+27 を基点に操作(129byte:入れ子/配列)
; dwAlternateOffset : DWORD (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; ipaddr : RASIPADDR (+160, 4byte) varptr(st)+160 を基点に操作(4byte:入れ子/配列)
; ipaddrDns : RASIPADDR (+164, 4byte) varptr(st)+164 を基点に操作(4byte:入れ子/配列)
; ipaddrDnsAlt : RASIPADDR (+168, 4byte) varptr(st)+168 を基点に操作(4byte:入れ子/配列)
; ipaddrWins : RASIPADDR (+172, 4byte) varptr(st)+172 を基点に操作(4byte:入れ子/配列)
; ipaddrWinsAlt : RASIPADDR (+176, 4byte) varptr(st)+176 を基点に操作(4byte:入れ子/配列)
; dwFrameSize : DWORD (+180, 4byte) st.45 = 値 / 値 = st.45 (lpoke/lpeek も可)
; dwfNetProtocols : DWORD (+184, 4byte) st.46 = 値 / 値 = st.46 (lpoke/lpeek も可)
; dwFramingProtocol : DWORD (+188, 4byte) st.47 = 値 / 値 = st.47 (lpoke/lpeek も可)
; szScript : CHAR (+192, 260byte) varptr(st)+192 を基点に操作(260byte:入れ子/配列)
; szAutodialDll : CHAR (+452, 260byte) varptr(st)+452 を基点に操作(260byte:入れ子/配列)
; szAutodialFunc : CHAR (+712, 260byte) varptr(st)+712 を基点に操作(260byte:入れ子/配列)
; szDeviceType : CHAR (+972, 17byte) varptr(st)+972 を基点に操作(17byte:入れ子/配列)
; szDeviceName : CHAR (+989, 129byte) varptr(st)+989 を基点に操作(129byte:入れ子/配列)
; szX25PadType : CHAR (+1118, 33byte) varptr(st)+1118 を基点に操作(33byte:入れ子/配列)
; szX25Address : CHAR (+1151, 201byte) varptr(st)+1151 を基点に操作(201byte:入れ子/配列)
; szX25Facilities : CHAR (+1352, 201byte) varptr(st)+1352 を基点に操作(201byte:入れ子/配列)
; szX25UserData : CHAR (+1553, 201byte) varptr(st)+1553 を基点に操作(201byte:入れ子/配列)
; dwChannels : DWORD (+1756, 4byte) st.439 = 値 / 値 = st.439 (lpoke/lpeek も可)
; dwReserved1 : DWORD (+1760, 4byte) st.440 = 値 / 値 = st.440 (lpoke/lpeek も可)
; dwReserved2 : DWORD (+1764, 4byte) st.441 = 値 / 値 = st.441 (lpoke/lpeek も可)
; dwSubEntries : DWORD (+1768, 4byte) st.442 = 値 / 値 = st.442 (lpoke/lpeek も可)
; dwDialMode : RASENTRY_DIAL_MODE (+1772, 4byte) st.443 = 値 / 値 = st.443 (lpoke/lpeek も可)
; dwDialExtraPercent : DWORD (+1776, 4byte) st.444 = 値 / 値 = st.444 (lpoke/lpeek も可)
; dwDialExtraSampleSeconds : DWORD (+1780, 4byte) st.445 = 値 / 値 = st.445 (lpoke/lpeek も可)
; dwHangUpExtraPercent : DWORD (+1784, 4byte) st.446 = 値 / 値 = st.446 (lpoke/lpeek も可)
; dwHangUpExtraSampleSeconds : DWORD (+1788, 4byte) st.447 = 値 / 値 = st.447 (lpoke/lpeek も可)
; dwIdleDisconnectSeconds : DWORD (+1792, 4byte) st.448 = 値 / 値 = st.448 (lpoke/lpeek も可)
; dwType : DWORD (+1796, 4byte) st.449 = 値 / 値 = st.449 (lpoke/lpeek も可)
; dwEncryptionType : DWORD (+1800, 4byte) st.450 = 値 / 値 = st.450 (lpoke/lpeek も可)
; dwCustomAuthKey : DWORD (+1804, 4byte) st.451 = 値 / 値 = st.451 (lpoke/lpeek も可)
; guidId : GUID (+1808, 16byte) varptr(st)+1808 を基点に操作(16byte:入れ子/配列)
; szCustomDialDll : CHAR (+1824, 260byte) varptr(st)+1824 を基点に操作(260byte:入れ子/配列)
; dwVpnStrategy : DWORD (+2084, 4byte) st.521 = 値 / 値 = st.521 (lpoke/lpeek も可)
; dwfOptions2 : DWORD (+2088, 4byte) st.522 = 値 / 値 = st.522 (lpoke/lpeek も可)
; dwfOptions3 : DWORD (+2092, 4byte) st.523 = 値 / 値 = st.523 (lpoke/lpeek も可)
; szDnsSuffix : CHAR (+2096, 256byte) varptr(st)+2096 を基点に操作(256byte:入れ子/配列)
; dwTcpWindowSize : DWORD (+2352, 4byte) st.588 = 値 / 値 = st.588 (lpoke/lpeek も可)
; szPrerequisitePbk : CHAR (+2356, 260byte) varptr(st)+2356 を基点に操作(260byte:入れ子/配列)
; szPrerequisiteEntry : CHAR (+2616, 257byte) varptr(st)+2616 を基点に操作(257byte:入れ子/配列)
; dwRedialCount : DWORD (+2876, 4byte) st.719 = 値 / 値 = st.719 (lpoke/lpeek も可)
; dwRedialPause : DWORD (+2880, 4byte) st.720 = 値 / 値 = st.720 (lpoke/lpeek も可)
; ipv6addrDns : IN6_ADDR (+2884, 16byte) varptr(st)+2884 を基点に操作(16byte:入れ子/配列)
; ipv6addrDnsAlt : IN6_ADDR (+2900, 16byte) varptr(st)+2900 を基点に操作(16byte:入れ子/配列)
; dwIPv4InterfaceMetric : DWORD (+2916, 4byte) st.729 = 値 / 値 = st.729 (lpoke/lpeek も可)
; dwIPv6InterfaceMetric : DWORD (+2920, 4byte) st.730 = 値 / 値 = st.730 (lpoke/lpeek も可)
; ipv6addr : IN6_ADDR (+2924, 16byte) varptr(st)+2924 を基点に操作(16byte:入れ子/配列)
; dwIPv6PrefixLength : DWORD (+2940, 4byte) st.735 = 値 / 値 = st.735 (lpoke/lpeek も可)
; dwNetworkOutageTime : DWORD (+2944, 4byte) st.736 = 値 / 値 = st.736 (lpoke/lpeek も可)
; szIDi : CHAR (+2948, 257byte) varptr(st)+2948 を基点に操作(257byte:入れ子/配列)
; szIDr : CHAR (+3205, 257byte) varptr(st)+3205 を基点に操作(257byte:入れ子/配列)
; fIsImsConfig : BOOL (+3464, 4byte) st.866 = 値 / 値 = st.866 (lpoke/lpeek も可)
; IdiType : IKEV2_ID_PAYLOAD_TYPE (+3468, 4byte) st.867 = 値 / 値 = st.867 (lpoke/lpeek も可)
; IdrType : IKEV2_ID_PAYLOAD_TYPE (+3472, 4byte) st.868 = 値 / 値 = st.868 (lpoke/lpeek も可)
; fDisableIKEv2Fragmentation : BOOL (+3476, 4byte) st.869 = 値 / 値 = st.869 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global RASIPADDR
#field byte a
#field byte b
#field byte c
#field byte d
#endstruct
#defstruct global GUID, pack=1
#field int Data1
#field short Data2
#field short Data3
#field byte Data4 8
#endstruct
#defstruct global IN6_ADDR
#field byte u 16
#endstruct
#defstruct global RASENTRYA
#field int dwSize
#field int dwfOptions
#field int dwCountryID
#field int dwCountryCode
#field byte szAreaCode 11
#field byte szLocalPhoneNumber 129
#field int dwAlternateOffset
#field RASIPADDR ipaddr
#field RASIPADDR ipaddrDns
#field RASIPADDR ipaddrDnsAlt
#field RASIPADDR ipaddrWins
#field RASIPADDR ipaddrWinsAlt
#field int dwFrameSize
#field int dwfNetProtocols
#field int dwFramingProtocol
#field byte szScript 260
#field byte szAutodialDll 260
#field byte szAutodialFunc 260
#field byte szDeviceType 17
#field byte szDeviceName 129
#field byte szX25PadType 33
#field byte szX25Address 201
#field byte szX25Facilities 201
#field byte szX25UserData 201
#field int dwChannels
#field int dwReserved1
#field int dwReserved2
#field int dwSubEntries
#field int dwDialMode
#field int dwDialExtraPercent
#field int dwDialExtraSampleSeconds
#field int dwHangUpExtraPercent
#field int dwHangUpExtraSampleSeconds
#field int dwIdleDisconnectSeconds
#field int dwType
#field int dwEncryptionType
#field int dwCustomAuthKey
#field GUID guidId
#field byte szCustomDialDll 260
#field int dwVpnStrategy
#field int dwfOptions2
#field int dwfOptions3
#field byte szDnsSuffix 256
#field int dwTcpWindowSize
#field byte szPrerequisitePbk 260
#field byte szPrerequisiteEntry 257
#field int dwRedialCount
#field int dwRedialPause
#field IN6_ADDR ipv6addrDns
#field IN6_ADDR ipv6addrDnsAlt
#field int dwIPv4InterfaceMetric
#field int dwIPv6InterfaceMetric
#field IN6_ADDR ipv6addr
#field int dwIPv6PrefixLength
#field int dwNetworkOutageTime
#field byte szIDi 257
#field byte szIDr 257
#field bool fIsImsConfig
#field int IdiType
#field int IdrType
#field bool fDisableIKEv2Fragmentation
#endstruct
stdim st, RASENTRYA ; NSTRUCT 変数を確保
st->dwSize = 100
mes "dwSize=" + st->dwSize