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

RASENTRYA

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

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

フィールド

フィールドサイズx64x86説明
dwSizeDWORD4+0+0この構造体のバイト単位のサイズ。呼び出し前にsizeofを設定する。
dwfOptionsDWORD4+4+4接続エントリの動作を制御するRASEO_*オプションフラグ。
dwCountryIDDWORD4+8+8ダイヤルに使用するTAPIの国/地域ID。
dwCountryCodeDWORD4+12+12ダイヤルに使用する国際電話の国番号。
szAreaCodeCHAR11+16+16市外局番を表すANSI文字列。
szLocalPhoneNumberCHAR129+27+27ローカル電話番号を表すANSI文字列。
dwAlternateOffsetDWORD4+156+156代替電話番号リストへの構造体先頭からのバイトオフセット。
ipaddrRASIPADDR4+160+160クライアント固定IPアドレス(RASIPADDR構造体)。
ipaddrDnsRASIPADDR4+164+164プライマリDNSサーバーのIPアドレス。
ipaddrDnsAltRASIPADDR4+168+168代替DNSサーバーのIPアドレス。
ipaddrWinsRASIPADDR4+172+172プライマリWINSサーバーのIPアドレス。
ipaddrWinsAltRASIPADDR4+176+176代替WINSサーバーのIPアドレス。
dwFrameSizeDWORD4+180+180ネットワークフレームのサイズ(バイト)。
dwfNetProtocolsDWORD4+184+184使用するネットワークプロトコルのフラグ(RASNP_*)。
dwFramingProtocolDWORD4+188+188使用するフレーミングプロトコル(RASFP_*)。PPP等。
szScriptCHAR260+192+192接続後に実行するスクリプトファイルのパス(ANSI文字列)。
szAutodialDllCHAR260+452+452自動ダイヤルに使用するDLLのパス(ANSI文字列)。
szAutodialFuncCHAR260+712+712自動ダイヤルDLL内の関数名(ANSI文字列)。
szDeviceTypeCHAR17+972+972接続に使用するデバイスの種別(ANSI文字列)。
szDeviceNameCHAR129+989+989接続に使用するデバイスの名前(ANSI文字列)。
szX25PadTypeCHAR33+1118+1118X.25 PADタイプを表すANSI文字列。X.25接続用。
szX25AddressCHAR201+1151+1151X.25ネットワークのアドレス(ANSI文字列)。
szX25FacilitiesCHAR201+1352+1352X.25呼設定の追加機能を表すANSI文字列。
szX25UserDataCHAR201+1553+1553X.25接続時にPADへ送るユーザーデータ(ANSI文字列)。
dwChannelsDWORD4+1756+1756ISDN等で使用するチャネル数。
dwReserved1DWORD4+1760+1760予約済み。0を設定する。
dwReserved2DWORD4+1764+1764予約済み。0を設定する。
dwSubEntriesDWORD4+1768+1768このエントリに含まれるサブエントリ(マルチリンク)の数。
dwDialModeRASENTRY_DIAL_MODE4+1772+1772マルチリンクのダイヤル方式を表すRASENTRY_DIAL_MODE列挙値。
dwDialExtraPercentDWORD4+1776+1776回線追加発呼の閾値となる帯域使用率(%)。
dwDialExtraSampleSecondsDWORD4+1780+1780回線追加判定のための帯域サンプリング秒数。
dwHangUpExtraPercentDWORD4+1784+1784回線切断発火の閾値となる帯域使用率(%)。
dwHangUpExtraSampleSecondsDWORD4+1788+1788回線切断判定のための帯域サンプリング秒数。
dwIdleDisconnectSecondsDWORD4+1792+1792アイドル状態が続いた場合に自動切断するまでの秒数。
dwTypeDWORD4+1796+1796エントリの種別(RASET_*)。Phone/VPN/Direct/Broadband等。
dwEncryptionTypeDWORD4+1800+1800データ暗号化の種別を表す列挙値(ET_*)。
dwCustomAuthKeyDWORD4+1804+1804カスタムEAP認証で使用するキー値。
guidIdGUID16+1808+1808この電話帳エントリを一意に識別するGUID。
szCustomDialDllCHAR260+1824+1824カスタムダイヤラーDLLのパス(ANSI文字列)。
dwVpnStrategyDWORD4+2084+2084VPN接続で試行するトンネルプロトコル戦略(VS_*)。
dwfOptions2DWORD4+2088+2088追加のオプションフラグ第2セット(RASEO2_*)。
dwfOptions3DWORD4+2092+2092追加のオプションフラグ第3セット。
szDnsSuffixCHAR256+2096+2096接続に使用するDNSサフィックス(ANSI文字列)。
dwTcpWindowSizeDWORD4+2352+2352接続のTCPウィンドウサイズ(バイト)。
szPrerequisitePbkCHAR260+2356+2356前提接続のための電話帳ファイルパス(ANSI文字列)。
szPrerequisiteEntryCHAR257+2616+2616前提となる接続エントリ名(ANSI文字列)。ダブルダイヤル用。
dwRedialCountDWORD4+2876+2876接続失敗時の再ダイヤル回数。
dwRedialPauseDWORD4+2880+2880再ダイヤル試行間の待機秒数。
ipv6addrDnsIN6_ADDR16+2884+2884プライマリIPv6 DNSサーバーのアドレス。
ipv6addrDnsAltIN6_ADDR16+2900+2900代替IPv6 DNSサーバーのアドレス。
dwIPv4InterfaceMetricDWORD4+2916+2916IPv4インターフェイスのルーティングメトリック。
dwIPv6InterfaceMetricDWORD4+2920+2920IPv6インターフェイスのルーティングメトリック。
ipv6addrIN6_ADDR16+2924+2924クライアント固定IPv6アドレス。
dwIPv6PrefixLengthDWORD4+2940+2940クライアントIPv6アドレスのプレフィックス長(ビット)。
dwNetworkOutageTimeDWORD4+2944+2944ネットワーク中断を許容する時間(IKEv2の再接続用、秒)。
szIDiCHAR257+2948+2948IKEv2でローカル(イニシエータ)を識別するID文字列(ANSI)。
szIDrCHAR257+3205+3205IKEv2でリモート(レスポンダ)を識別するID文字列(ANSI)。
fIsImsConfigBOOL4+3464+3464TRUEならIMS(IP Multimedia Subsystem)設定であることを示す。
IdiTypeIKEV2_ID_PAYLOAD_TYPE4+3468+3468szIDiのIKEv2 IDペイロード種別(IKEV2_ID_PAYLOAD_TYPE)。
IdrTypeIKEV2_ID_PAYLOAD_TYPE4+3472+3472szIDrのIKEv2 IDペイロード種別(IKEV2_ID_PAYLOAD_TYPE)。
fDisableIKEv2FragmentationBOOL4+3476+3476TRUEなら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 Structure
import 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: int32
struct 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