ホーム › NetworkManagement.Rras › RASENTRYW
RASENTRYW
構造体サイズ=各フィールドのバイト数(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 | WCHAR | 22 | +16 | +16 | 市外局番を表すワイド文字列。 |
| szLocalPhoneNumber | WCHAR | 258 | +38 | +38 | ローカル電話番号を表すワイド文字列。 |
| dwAlternateOffset | DWORD | 4 | +296 | +296 | 代替電話番号リストへの構造体先頭からのバイトオフセット。 |
| ipaddr | RASIPADDR | 4 | +300 | +300 | クライアント固定IPアドレス(RASIPADDR構造体)。 |
| ipaddrDns | RASIPADDR | 4 | +304 | +304 | プライマリDNSサーバーのIPアドレス。 |
| ipaddrDnsAlt | RASIPADDR | 4 | +308 | +308 | 代替DNSサーバーのIPアドレス。 |
| ipaddrWins | RASIPADDR | 4 | +312 | +312 | プライマリWINSサーバーのIPアドレス。 |
| ipaddrWinsAlt | RASIPADDR | 4 | +316 | +316 | 代替WINSサーバーのIPアドレス。 |
| dwFrameSize | DWORD | 4 | +320 | +320 | ネットワークフレームのサイズ(バイト)。 |
| dwfNetProtocols | DWORD | 4 | +324 | +324 | 使用するネットワークプロトコルのフラグ(RASNP_*)。 |
| dwFramingProtocol | DWORD | 4 | +328 | +328 | 使用するフレーミングプロトコル(RASFP_*)。PPP等。 |
| szScript | WCHAR | 520 | +332 | +332 | 接続後に実行するスクリプトファイルのパス(ワイド文字列)。 |
| szAutodialDll | WCHAR | 520 | +852 | +852 | 自動ダイヤルに使用するDLLのパス(ワイド文字列)。 |
| szAutodialFunc | WCHAR | 520 | +1372 | +1372 | 自動ダイヤルDLL内の関数名(ワイド文字列)。 |
| szDeviceType | WCHAR | 34 | +1892 | +1892 | 接続に使用するデバイスの種別(ワイド文字列)。 |
| szDeviceName | WCHAR | 258 | +1926 | +1926 | 接続に使用するデバイスの名前(ワイド文字列)。 |
| szX25PadType | WCHAR | 66 | +2184 | +2184 | X.25 PADタイプを表すワイド文字列。X.25接続用。 |
| szX25Address | WCHAR | 402 | +2250 | +2250 | X.25ネットワークのアドレス(ワイド文字列)。 |
| szX25Facilities | WCHAR | 402 | +2652 | +2652 | X.25呼設定の追加機能を表すワイド文字列。 |
| szX25UserData | WCHAR | 402 | +3054 | +3054 | X.25接続時にPADへ送るユーザーデータ(ワイド文字列)。 |
| dwChannels | DWORD | 4 | +3456 | +3456 | ISDN等で使用するチャネル数。 |
| dwReserved1 | DWORD | 4 | +3460 | +3460 | 予約済み。0を設定する。 |
| dwReserved2 | DWORD | 4 | +3464 | +3464 | 予約済み。0を設定する。 |
| dwSubEntries | DWORD | 4 | +3468 | +3468 | このエントリに含まれるサブエントリ(マルチリンク)の数。 |
| dwDialMode | RASENTRY_DIAL_MODE | 4 | +3472 | +3472 | マルチリンクのダイヤル方式を表すRASENTRY_DIAL_MODE列挙値。 |
| dwDialExtraPercent | DWORD | 4 | +3476 | +3476 | 回線追加発呼の閾値となる帯域使用率(%)。 |
| dwDialExtraSampleSeconds | DWORD | 4 | +3480 | +3480 | 回線追加判定のための帯域サンプリング秒数。 |
| dwHangUpExtraPercent | DWORD | 4 | +3484 | +3484 | 回線切断発火の閾値となる帯域使用率(%)。 |
| dwHangUpExtraSampleSeconds | DWORD | 4 | +3488 | +3488 | 回線切断判定のための帯域サンプリング秒数。 |
| dwIdleDisconnectSeconds | DWORD | 4 | +3492 | +3492 | アイドル状態が続いた場合に自動切断するまでの秒数。 |
| dwType | DWORD | 4 | +3496 | +3496 | エントリの種別(RASET_*)。Phone/VPN/Direct/Broadband等。 |
| dwEncryptionType | DWORD | 4 | +3500 | +3500 | データ暗号化の種別を表す列挙値(ET_*)。 |
| dwCustomAuthKey | DWORD | 4 | +3504 | +3504 | カスタムEAP認証で使用するキー値。 |
| guidId | GUID | 16 | +3508 | +3508 | この電話帳エントリを一意に識別するGUID。 |
| szCustomDialDll | WCHAR | 520 | +3524 | +3524 | カスタムダイヤラーDLLのパス(ワイド文字列)。 |
| dwVpnStrategy | DWORD | 4 | +4044 | +4044 | VPN接続で試行するトンネルプロトコル戦略(VS_*)。 |
| dwfOptions2 | DWORD | 4 | +4048 | +4048 | 追加のオプションフラグ第2セット(RASEO2_*)。 |
| dwfOptions3 | DWORD | 4 | +4052 | +4052 | 追加のオプションフラグ第3セット。 |
| szDnsSuffix | WCHAR | 512 | +4056 | +4056 | 接続に使用するDNSサフィックス(ワイド文字列)。 |
| dwTcpWindowSize | DWORD | 4 | +4568 | +4568 | 接続のTCPウィンドウサイズ(バイト)。 |
| szPrerequisitePbk | WCHAR | 520 | +4572 | +4572 | 前提接続のための電話帳ファイルパス(ワイド文字列)。 |
| szPrerequisiteEntry | WCHAR | 514 | +5092 | +5092 | 前提となる接続エントリ名(ワイド文字列)。ダブルダイヤル用。 |
| dwRedialCount | DWORD | 4 | +5608 | +5608 | 接続失敗時の再ダイヤル回数。 |
| dwRedialPause | DWORD | 4 | +5612 | +5612 | 再ダイヤル試行間の待機秒数。 |
| ipv6addrDns | IN6_ADDR | 16 | +5616 | +5616 | プライマリIPv6 DNSサーバーのアドレス。 |
| ipv6addrDnsAlt | IN6_ADDR | 16 | +5632 | +5632 | 代替IPv6 DNSサーバーのアドレス。 |
| dwIPv4InterfaceMetric | DWORD | 4 | +5648 | +5648 | IPv4インターフェイスのルーティングメトリック。 |
| dwIPv6InterfaceMetric | DWORD | 4 | +5652 | +5652 | IPv6インターフェイスのルーティングメトリック。 |
| ipv6addr | IN6_ADDR | 16 | +5656 | +5656 | クライアント固定IPv6アドレス。 |
| dwIPv6PrefixLength | DWORD | 4 | +5672 | +5672 | クライアントIPv6アドレスのプレフィックス長(ビット)。 |
| dwNetworkOutageTime | DWORD | 4 | +5676 | +5676 | ネットワーク中断を許容する時間(IKEv2の再接続用、秒)。 |
| szIDi | WCHAR | 514 | +5680 | +5680 | IKEv2でローカル(イニシエータ)を識別するID文字列(ワイド)。 |
| szIDr | WCHAR | 514 | +6194 | +6194 | IKEv2でリモート(レスポンダ)を識別するID文字列(ワイド)。 |
| fIsImsConfig | BOOL | 4 | +6708 | +6708 | TRUEならIMS(IP Multimedia Subsystem)設定であることを示す。 |
| IdiType | IKEV2_ID_PAYLOAD_TYPE | 4 | +6712 | +6712 | szIDiのIKEv2 IDペイロード種別(IKEV2_ID_PAYLOAD_TYPE)。 |
| IdrType | IKEV2_ID_PAYLOAD_TYPE | 4 | +6716 | +6716 | szIDrのIKEv2 IDペイロード種別(IKEV2_ID_PAYLOAD_TYPE)。 |
| fDisableIKEv2Fragmentation | BOOL | 4 | +6720 | +6720 | 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;
// RASENTRYW (x64 6724 / x86 6724 バイト)
typedef struct RASENTRYW {
DWORD dwSize;
DWORD dwfOptions;
DWORD dwCountryID;
DWORD dwCountryCode;
WCHAR szAreaCode[11];
WCHAR szLocalPhoneNumber[129];
DWORD dwAlternateOffset;
RASIPADDR ipaddr;
RASIPADDR ipaddrDns;
RASIPADDR ipaddrDnsAlt;
RASIPADDR ipaddrWins;
RASIPADDR ipaddrWinsAlt;
DWORD dwFrameSize;
DWORD dwfNetProtocols;
DWORD dwFramingProtocol;
WCHAR szScript[260];
WCHAR szAutodialDll[260];
WCHAR szAutodialFunc[260];
WCHAR szDeviceType[17];
WCHAR szDeviceName[129];
WCHAR szX25PadType[33];
WCHAR szX25Address[201];
WCHAR szX25Facilities[201];
WCHAR 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;
WCHAR szCustomDialDll[260];
DWORD dwVpnStrategy;
DWORD dwfOptions2;
DWORD dwfOptions3;
WCHAR szDnsSuffix[256];
DWORD dwTcpWindowSize;
WCHAR szPrerequisitePbk[260];
WCHAR szPrerequisiteEntry[257];
DWORD dwRedialCount;
DWORD dwRedialPause;
IN6_ADDR ipv6addrDns;
IN6_ADDR ipv6addrDnsAlt;
DWORD dwIPv4InterfaceMetric;
DWORD dwIPv6InterfaceMetric;
IN6_ADDR ipv6addr;
DWORD dwIPv6PrefixLength;
DWORD dwNetworkOutageTime;
WCHAR szIDi[257];
WCHAR szIDr[257];
BOOL fIsImsConfig;
IKEV2_ID_PAYLOAD_TYPE IdiType;
IKEV2_ID_PAYLOAD_TYPE IdrType;
BOOL fDisableIKEv2Fragmentation;
} RASENTRYW;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 RASENTRYW
{
public uint dwSize;
public uint dwfOptions;
public uint dwCountryID;
public uint dwCountryCode;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 11)] public string szAreaCode;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] public string 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.ByValTStr, SizeConst = 260)] public string szScript;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szAutodialDll;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szAutodialFunc;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)] public string szDeviceType;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] public string szDeviceName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 33)] public string szX25PadType;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 201)] public string szX25Address;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 201)] public string szX25Facilities;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 201)] public string 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.ByValTStr, SizeConst = 260)] public string szCustomDialDll;
public uint dwVpnStrategy;
public uint dwfOptions2;
public uint dwfOptions3;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public string szDnsSuffix;
public uint dwTcpWindowSize;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szPrerequisitePbk;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)] public string 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.ByValTStr, SizeConst = 257)] public string szIDi;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)] public string 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 RASENTRYW
Public dwSize As UInteger
Public dwfOptions As UInteger
Public dwCountryID As UInteger
Public dwCountryCode As UInteger
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=11)> Public szAreaCode As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> Public szLocalPhoneNumber As String
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.ByValTStr, SizeConst:=260)> Public szScript As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szAutodialDll As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szAutodialFunc As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=17)> Public szDeviceType As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> Public szDeviceName As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=33)> Public szX25PadType As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=201)> Public szX25Address As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=201)> Public szX25Facilities As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=201)> Public szX25UserData As String
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.ByValTStr, SizeConst:=260)> Public szCustomDialDll As String
Public dwVpnStrategy As UInteger
Public dwfOptions2 As UInteger
Public dwfOptions3 As UInteger
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> Public szDnsSuffix As String
Public dwTcpWindowSize As UInteger
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szPrerequisitePbk As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=257)> Public szPrerequisiteEntry As String
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.ByValTStr, SizeConst:=257)> Public szIDi As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=257)> Public szIDr As String
<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 RASENTRYW(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwfOptions", wintypes.DWORD),
("dwCountryID", wintypes.DWORD),
("dwCountryCode", wintypes.DWORD),
("szAreaCode", ctypes.c_wchar * 11),
("szLocalPhoneNumber", ctypes.c_wchar * 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_wchar * 260),
("szAutodialDll", ctypes.c_wchar * 260),
("szAutodialFunc", ctypes.c_wchar * 260),
("szDeviceType", ctypes.c_wchar * 17),
("szDeviceName", ctypes.c_wchar * 129),
("szX25PadType", ctypes.c_wchar * 33),
("szX25Address", ctypes.c_wchar * 201),
("szX25Facilities", ctypes.c_wchar * 201),
("szX25UserData", ctypes.c_wchar * 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_wchar * 260),
("dwVpnStrategy", wintypes.DWORD),
("dwfOptions2", wintypes.DWORD),
("dwfOptions3", wintypes.DWORD),
("szDnsSuffix", ctypes.c_wchar * 256),
("dwTcpWindowSize", wintypes.DWORD),
("szPrerequisitePbk", ctypes.c_wchar * 260),
("szPrerequisiteEntry", ctypes.c_wchar * 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_wchar * 257),
("szIDr", ctypes.c_wchar * 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 RASENTRYW {
pub dwSize: u32,
pub dwfOptions: u32,
pub dwCountryID: u32,
pub dwCountryCode: u32,
pub szAreaCode: [u16; 11],
pub szLocalPhoneNumber: [u16; 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: [u16; 260],
pub szAutodialDll: [u16; 260],
pub szAutodialFunc: [u16; 260],
pub szDeviceType: [u16; 17],
pub szDeviceName: [u16; 129],
pub szX25PadType: [u16; 33],
pub szX25Address: [u16; 201],
pub szX25Facilities: [u16; 201],
pub szX25UserData: [u16; 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: [u16; 260],
pub dwVpnStrategy: u32,
pub dwfOptions2: u32,
pub dwfOptions3: u32,
pub szDnsSuffix: [u16; 256],
pub dwTcpWindowSize: u32,
pub szPrerequisitePbk: [u16; 260],
pub szPrerequisiteEntry: [u16; 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: [u16; 257],
pub szIDr: [u16; 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 RASENTRYW struct {
dwSize uint32
dwfOptions uint32
dwCountryID uint32
dwCountryCode uint32
szAreaCode [11]uint16
szLocalPhoneNumber [129]uint16
dwAlternateOffset uint32
ipaddr RASIPADDR
ipaddrDns RASIPADDR
ipaddrDnsAlt RASIPADDR
ipaddrWins RASIPADDR
ipaddrWinsAlt RASIPADDR
dwFrameSize uint32
dwfNetProtocols uint32
dwFramingProtocol uint32
szScript [260]uint16
szAutodialDll [260]uint16
szAutodialFunc [260]uint16
szDeviceType [17]uint16
szDeviceName [129]uint16
szX25PadType [33]uint16
szX25Address [201]uint16
szX25Facilities [201]uint16
szX25UserData [201]uint16
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]uint16
dwVpnStrategy uint32
dwfOptions2 uint32
dwfOptions3 uint32
szDnsSuffix [256]uint16
dwTcpWindowSize uint32
szPrerequisitePbk [260]uint16
szPrerequisiteEntry [257]uint16
dwRedialCount uint32
dwRedialPause uint32
ipv6addrDns IN6_ADDR
ipv6addrDnsAlt IN6_ADDR
dwIPv4InterfaceMetric uint32
dwIPv6InterfaceMetric uint32
ipv6addr IN6_ADDR
dwIPv6PrefixLength uint32
dwNetworkOutageTime uint32
szIDi [257]uint16
szIDr [257]uint16
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;
RASENTRYW = record
dwSize: DWORD;
dwfOptions: DWORD;
dwCountryID: DWORD;
dwCountryCode: DWORD;
szAreaCode: array[0..10] of WideChar;
szLocalPhoneNumber: array[0..128] of WideChar;
dwAlternateOffset: DWORD;
ipaddr: RASIPADDR;
ipaddrDns: RASIPADDR;
ipaddrDnsAlt: RASIPADDR;
ipaddrWins: RASIPADDR;
ipaddrWinsAlt: RASIPADDR;
dwFrameSize: DWORD;
dwfNetProtocols: DWORD;
dwFramingProtocol: DWORD;
szScript: array[0..259] of WideChar;
szAutodialDll: array[0..259] of WideChar;
szAutodialFunc: array[0..259] of WideChar;
szDeviceType: array[0..16] of WideChar;
szDeviceName: array[0..128] of WideChar;
szX25PadType: array[0..32] of WideChar;
szX25Address: array[0..200] of WideChar;
szX25Facilities: array[0..200] of WideChar;
szX25UserData: array[0..200] of WideChar;
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 WideChar;
dwVpnStrategy: DWORD;
dwfOptions2: DWORD;
dwfOptions3: DWORD;
szDnsSuffix: array[0..255] of WideChar;
dwTcpWindowSize: DWORD;
szPrerequisitePbk: array[0..259] of WideChar;
szPrerequisiteEntry: array[0..256] of WideChar;
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 WideChar;
szIDr: array[0..256] of WideChar;
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 RASENTRYW = extern struct {
dwSize: u32,
dwfOptions: u32,
dwCountryID: u32,
dwCountryCode: u32,
szAreaCode: [11]u16,
szLocalPhoneNumber: [129]u16,
dwAlternateOffset: u32,
ipaddr: RASIPADDR,
ipaddrDns: RASIPADDR,
ipaddrDnsAlt: RASIPADDR,
ipaddrWins: RASIPADDR,
ipaddrWinsAlt: RASIPADDR,
dwFrameSize: u32,
dwfNetProtocols: u32,
dwFramingProtocol: u32,
szScript: [260]u16,
szAutodialDll: [260]u16,
szAutodialFunc: [260]u16,
szDeviceType: [17]u16,
szDeviceName: [129]u16,
szX25PadType: [33]u16,
szX25Address: [201]u16,
szX25Facilities: [201]u16,
szX25UserData: [201]u16,
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]u16,
dwVpnStrategy: u32,
dwfOptions2: u32,
dwfOptions3: u32,
szDnsSuffix: [256]u16,
dwTcpWindowSize: u32,
szPrerequisitePbk: [260]u16,
szPrerequisiteEntry: [257]u16,
dwRedialCount: u32,
dwRedialPause: u32,
ipv6addrDns: IN6_ADDR,
ipv6addrDnsAlt: IN6_ADDR,
dwIPv4InterfaceMetric: u32,
dwIPv6InterfaceMetric: u32,
ipv6addr: IN6_ADDR,
dwIPv6PrefixLength: u32,
dwNetworkOutageTime: u32,
szIDi: [257]u16,
szIDr: [257]u16,
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
RASENTRYW {.bycopy.} = object
dwSize: uint32
dwfOptions: uint32
dwCountryID: uint32
dwCountryCode: uint32
szAreaCode: array[11, uint16]
szLocalPhoneNumber: array[129, uint16]
dwAlternateOffset: uint32
ipaddr: RASIPADDR
ipaddrDns: RASIPADDR
ipaddrDnsAlt: RASIPADDR
ipaddrWins: RASIPADDR
ipaddrWinsAlt: RASIPADDR
dwFrameSize: uint32
dwfNetProtocols: uint32
dwFramingProtocol: uint32
szScript: array[260, uint16]
szAutodialDll: array[260, uint16]
szAutodialFunc: array[260, uint16]
szDeviceType: array[17, uint16]
szDeviceName: array[129, uint16]
szX25PadType: array[33, uint16]
szX25Address: array[201, uint16]
szX25Facilities: array[201, uint16]
szX25UserData: array[201, uint16]
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, uint16]
dwVpnStrategy: uint32
dwfOptions2: uint32
dwfOptions3: uint32
szDnsSuffix: array[256, uint16]
dwTcpWindowSize: uint32
szPrerequisitePbk: array[260, uint16]
szPrerequisiteEntry: array[257, uint16]
dwRedialCount: uint32
dwRedialPause: uint32
ipv6addrDns: IN6_ADDR
ipv6addrDnsAlt: IN6_ADDR
dwIPv4InterfaceMetric: uint32
dwIPv6InterfaceMetric: uint32
ipv6addr: IN6_ADDR
dwIPv6PrefixLength: uint32
dwNetworkOutageTime: uint32
szIDi: array[257, uint16]
szIDr: array[257, uint16]
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 RASENTRYW
{
uint dwSize;
uint dwfOptions;
uint dwCountryID;
uint dwCountryCode;
wchar[11] szAreaCode;
wchar[129] szLocalPhoneNumber;
uint dwAlternateOffset;
RASIPADDR ipaddr;
RASIPADDR ipaddrDns;
RASIPADDR ipaddrDnsAlt;
RASIPADDR ipaddrWins;
RASIPADDR ipaddrWinsAlt;
uint dwFrameSize;
uint dwfNetProtocols;
uint dwFramingProtocol;
wchar[260] szScript;
wchar[260] szAutodialDll;
wchar[260] szAutodialFunc;
wchar[17] szDeviceType;
wchar[129] szDeviceName;
wchar[33] szX25PadType;
wchar[201] szX25Address;
wchar[201] szX25Facilities;
wchar[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;
wchar[260] szCustomDialDll;
uint dwVpnStrategy;
uint dwfOptions2;
uint dwfOptions3;
wchar[256] szDnsSuffix;
uint dwTcpWindowSize;
wchar[260] szPrerequisitePbk;
wchar[257] szPrerequisiteEntry;
uint dwRedialCount;
uint dwRedialPause;
IN6_ADDR ipv6addrDns;
IN6_ADDR ipv6addrDnsAlt;
uint dwIPv4InterfaceMetric;
uint dwIPv6InterfaceMetric;
IN6_ADDR ipv6addr;
uint dwIPv6PrefixLength;
uint dwNetworkOutageTime;
wchar[257] szIDi;
wchar[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 レイアウト)
; RASENTRYW サイズ: 6724 バイト(x64)
dim st, 1681 ; 4byte整数×1681(構造体サイズ 6724 / 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 : WCHAR (+16, 22byte) varptr(st)+16 を基点に操作(22byte:入れ子/配列)
; szLocalPhoneNumber : WCHAR (+38, 258byte) varptr(st)+38 を基点に操作(258byte:入れ子/配列)
; dwAlternateOffset : DWORD (+296, 4byte) st.74 = 値 / 値 = st.74 (lpoke/lpeek も可)
; ipaddr : RASIPADDR (+300, 4byte) varptr(st)+300 を基点に操作(4byte:入れ子/配列)
; ipaddrDns : RASIPADDR (+304, 4byte) varptr(st)+304 を基点に操作(4byte:入れ子/配列)
; ipaddrDnsAlt : RASIPADDR (+308, 4byte) varptr(st)+308 を基点に操作(4byte:入れ子/配列)
; ipaddrWins : RASIPADDR (+312, 4byte) varptr(st)+312 を基点に操作(4byte:入れ子/配列)
; ipaddrWinsAlt : RASIPADDR (+316, 4byte) varptr(st)+316 を基点に操作(4byte:入れ子/配列)
; dwFrameSize : DWORD (+320, 4byte) st.80 = 値 / 値 = st.80 (lpoke/lpeek も可)
; dwfNetProtocols : DWORD (+324, 4byte) st.81 = 値 / 値 = st.81 (lpoke/lpeek も可)
; dwFramingProtocol : DWORD (+328, 4byte) st.82 = 値 / 値 = st.82 (lpoke/lpeek も可)
; szScript : WCHAR (+332, 520byte) varptr(st)+332 を基点に操作(520byte:入れ子/配列)
; szAutodialDll : WCHAR (+852, 520byte) varptr(st)+852 を基点に操作(520byte:入れ子/配列)
; szAutodialFunc : WCHAR (+1372, 520byte) varptr(st)+1372 を基点に操作(520byte:入れ子/配列)
; szDeviceType : WCHAR (+1892, 34byte) varptr(st)+1892 を基点に操作(34byte:入れ子/配列)
; szDeviceName : WCHAR (+1926, 258byte) varptr(st)+1926 を基点に操作(258byte:入れ子/配列)
; szX25PadType : WCHAR (+2184, 66byte) varptr(st)+2184 を基点に操作(66byte:入れ子/配列)
; szX25Address : WCHAR (+2250, 402byte) varptr(st)+2250 を基点に操作(402byte:入れ子/配列)
; szX25Facilities : WCHAR (+2652, 402byte) varptr(st)+2652 を基点に操作(402byte:入れ子/配列)
; szX25UserData : WCHAR (+3054, 402byte) varptr(st)+3054 を基点に操作(402byte:入れ子/配列)
; dwChannels : DWORD (+3456, 4byte) st.864 = 値 / 値 = st.864 (lpoke/lpeek も可)
; dwReserved1 : DWORD (+3460, 4byte) st.865 = 値 / 値 = st.865 (lpoke/lpeek も可)
; dwReserved2 : DWORD (+3464, 4byte) st.866 = 値 / 値 = st.866 (lpoke/lpeek も可)
; dwSubEntries : DWORD (+3468, 4byte) st.867 = 値 / 値 = st.867 (lpoke/lpeek も可)
; dwDialMode : RASENTRY_DIAL_MODE (+3472, 4byte) st.868 = 値 / 値 = st.868 (lpoke/lpeek も可)
; dwDialExtraPercent : DWORD (+3476, 4byte) st.869 = 値 / 値 = st.869 (lpoke/lpeek も可)
; dwDialExtraSampleSeconds : DWORD (+3480, 4byte) st.870 = 値 / 値 = st.870 (lpoke/lpeek も可)
; dwHangUpExtraPercent : DWORD (+3484, 4byte) st.871 = 値 / 値 = st.871 (lpoke/lpeek も可)
; dwHangUpExtraSampleSeconds : DWORD (+3488, 4byte) st.872 = 値 / 値 = st.872 (lpoke/lpeek も可)
; dwIdleDisconnectSeconds : DWORD (+3492, 4byte) st.873 = 値 / 値 = st.873 (lpoke/lpeek も可)
; dwType : DWORD (+3496, 4byte) st.874 = 値 / 値 = st.874 (lpoke/lpeek も可)
; dwEncryptionType : DWORD (+3500, 4byte) st.875 = 値 / 値 = st.875 (lpoke/lpeek も可)
; dwCustomAuthKey : DWORD (+3504, 4byte) st.876 = 値 / 値 = st.876 (lpoke/lpeek も可)
; guidId : GUID (+3508, 16byte) varptr(st)+3508 を基点に操作(16byte:入れ子/配列)
; szCustomDialDll : WCHAR (+3524, 520byte) varptr(st)+3524 を基点に操作(520byte:入れ子/配列)
; dwVpnStrategy : DWORD (+4044, 4byte) st.1011 = 値 / 値 = st.1011 (lpoke/lpeek も可)
; dwfOptions2 : DWORD (+4048, 4byte) st.1012 = 値 / 値 = st.1012 (lpoke/lpeek も可)
; dwfOptions3 : DWORD (+4052, 4byte) st.1013 = 値 / 値 = st.1013 (lpoke/lpeek も可)
; szDnsSuffix : WCHAR (+4056, 512byte) varptr(st)+4056 を基点に操作(512byte:入れ子/配列)
; dwTcpWindowSize : DWORD (+4568, 4byte) st.1142 = 値 / 値 = st.1142 (lpoke/lpeek も可)
; szPrerequisitePbk : WCHAR (+4572, 520byte) varptr(st)+4572 を基点に操作(520byte:入れ子/配列)
; szPrerequisiteEntry : WCHAR (+5092, 514byte) varptr(st)+5092 を基点に操作(514byte:入れ子/配列)
; dwRedialCount : DWORD (+5608, 4byte) st.1402 = 値 / 値 = st.1402 (lpoke/lpeek も可)
; dwRedialPause : DWORD (+5612, 4byte) st.1403 = 値 / 値 = st.1403 (lpoke/lpeek も可)
; ipv6addrDns : IN6_ADDR (+5616, 16byte) varptr(st)+5616 を基点に操作(16byte:入れ子/配列)
; ipv6addrDnsAlt : IN6_ADDR (+5632, 16byte) varptr(st)+5632 を基点に操作(16byte:入れ子/配列)
; dwIPv4InterfaceMetric : DWORD (+5648, 4byte) st.1412 = 値 / 値 = st.1412 (lpoke/lpeek も可)
; dwIPv6InterfaceMetric : DWORD (+5652, 4byte) st.1413 = 値 / 値 = st.1413 (lpoke/lpeek も可)
; ipv6addr : IN6_ADDR (+5656, 16byte) varptr(st)+5656 を基点に操作(16byte:入れ子/配列)
; dwIPv6PrefixLength : DWORD (+5672, 4byte) st.1418 = 値 / 値 = st.1418 (lpoke/lpeek も可)
; dwNetworkOutageTime : DWORD (+5676, 4byte) st.1419 = 値 / 値 = st.1419 (lpoke/lpeek も可)
; szIDi : WCHAR (+5680, 514byte) varptr(st)+5680 を基点に操作(514byte:入れ子/配列)
; szIDr : WCHAR (+6194, 514byte) varptr(st)+6194 を基点に操作(514byte:入れ子/配列)
; fIsImsConfig : BOOL (+6708, 4byte) st.1677 = 値 / 値 = st.1677 (lpoke/lpeek も可)
; IdiType : IKEV2_ID_PAYLOAD_TYPE (+6712, 4byte) st.1678 = 値 / 値 = st.1678 (lpoke/lpeek も可)
; IdrType : IKEV2_ID_PAYLOAD_TYPE (+6716, 4byte) st.1679 = 値 / 値 = st.1679 (lpoke/lpeek も可)
; fDisableIKEv2Fragmentation : BOOL (+6720, 4byte) st.1680 = 値 / 値 = st.1680 (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 RASENTRYW
#field int dwSize
#field int dwfOptions
#field int dwCountryID
#field int dwCountryCode
#field wchar szAreaCode 11
#field wchar 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 wchar szScript 260
#field wchar szAutodialDll 260
#field wchar szAutodialFunc 260
#field wchar szDeviceType 17
#field wchar szDeviceName 129
#field wchar szX25PadType 33
#field wchar szX25Address 201
#field wchar szX25Facilities 201
#field wchar 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 wchar szCustomDialDll 260
#field int dwVpnStrategy
#field int dwfOptions2
#field int dwfOptions3
#field wchar szDnsSuffix 256
#field int dwTcpWindowSize
#field wchar szPrerequisitePbk 260
#field wchar 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 wchar szIDi 257
#field wchar szIDr 257
#field bool fIsImsConfig
#field int IdiType
#field int IdrType
#field bool fDisableIKEv2Fragmentation
#endstruct
stdim st, RASENTRYW ; NSTRUCT 変数を確保
st->dwSize = 100
mes "dwSize=" + st->dwSize