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

RAS_PORT_2

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

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

フィールド

フィールドサイズx64x86説明
hPortHANDLE8/4+0+0RASポートを識別するハンドル。
hConnectionHANDLE8/4+8+4このポートに関連付く接続のハンドル。
dwConn_StateDWORD4+16+8ポートの接続状態を表す値。
wszPortNameWCHAR34+20+12ポートの名前を表すワイド文字列。
wszMediaNameWCHAR34+54+46ポートが使用するメディアの名前(ワイド文字列)。
wszDeviceNameWCHAR258+88+80ポートに関連付くデバイスの名前(ワイド文字列)。
wszDeviceTypeWCHAR34+346+338ポートに関連付くデバイスの種別(ワイド文字列)。
dwHardwareConditionRAS_HARDWARE_CONDITION4+380+372ハードウェアの状態を表すRAS_HARDWARE_CONDITION列挙値。
dwLineSpeedDWORD4+384+376回線速度(ビット毎秒、bps)。
dwCrcErrDWORD4+388+380発生したCRCエラーの数。
dwSerialOverRunErrsDWORD4+392+384発生したシリアルオーバーランエラーの数。
dwTimeoutErrDWORD4+396+388発生したタイムアウトエラーの数。
dwAlignmentErrDWORD4+400+392発生したアラインメントエラーの数。
dwHardwareOverrunErrDWORD4+404+396発生したハードウェアオーバーランエラーの数。
dwFramingErrDWORD4+408+400発生したフレーミングエラーの数。
dwBufferOverrunErrDWORD4+412+404発生したバッファオーバーランエラーの数。
dwCompressionRatioInDWORD4+416+408受信データの圧縮率(%)。
dwCompressionRatioOutDWORD4+420+412送信データの圧縮率(%)。
dwTotalErrorsDWORD4+424+416発生したエラーの総数。
ullBytesXmitedULONGLONG8+432+424送信されたバイト数(64ビット)。
ullBytesRcvedULONGLONG8+440+432受信したバイト数(64ビット)。
ullFramesXmitedULONGLONG8+448+440送信されたフレーム数(64ビット)。
ullFramesRcvedULONGLONG8+456+448受信したフレーム数(64ビット)。
ullBytesTxUncompressedULONGLONG8+464+456圧縮前の送信バイト数(64ビット)。
ullBytesTxCompressedULONGLONG8+472+464圧縮後の送信バイト数(64ビット)。
ullBytesRcvUncompressedULONGLONG8+480+472圧縮前の受信バイト数(64ビット)。
ullBytesRcvCompressedULONGLONG8+488+480圧縮後の受信バイト数(64ビット)。

各言語での定義

#include <windows.h>

// RAS_PORT_2  (x64 496 / x86 488 バイト)
typedef struct RAS_PORT_2 {
    HANDLE hPort;
    HANDLE hConnection;
    DWORD dwConn_State;
    WCHAR wszPortName[17];
    WCHAR wszMediaName[17];
    WCHAR wszDeviceName[129];
    WCHAR wszDeviceType[17];
    RAS_HARDWARE_CONDITION dwHardwareCondition;
    DWORD dwLineSpeed;
    DWORD dwCrcErr;
    DWORD dwSerialOverRunErrs;
    DWORD dwTimeoutErr;
    DWORD dwAlignmentErr;
    DWORD dwHardwareOverrunErr;
    DWORD dwFramingErr;
    DWORD dwBufferOverrunErr;
    DWORD dwCompressionRatioIn;
    DWORD dwCompressionRatioOut;
    DWORD dwTotalErrors;
    ULONGLONG ullBytesXmited;
    ULONGLONG ullBytesRcved;
    ULONGLONG ullFramesXmited;
    ULONGLONG ullFramesRcved;
    ULONGLONG ullBytesTxUncompressed;
    ULONGLONG ullBytesTxCompressed;
    ULONGLONG ullBytesRcvUncompressed;
    ULONGLONG ullBytesRcvCompressed;
} RAS_PORT_2;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct RAS_PORT_2
{
    public IntPtr hPort;
    public IntPtr hConnection;
    public uint dwConn_State;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)] public string wszPortName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)] public string wszMediaName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)] public string wszDeviceName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)] public string wszDeviceType;
    public int dwHardwareCondition;
    public uint dwLineSpeed;
    public uint dwCrcErr;
    public uint dwSerialOverRunErrs;
    public uint dwTimeoutErr;
    public uint dwAlignmentErr;
    public uint dwHardwareOverrunErr;
    public uint dwFramingErr;
    public uint dwBufferOverrunErr;
    public uint dwCompressionRatioIn;
    public uint dwCompressionRatioOut;
    public uint dwTotalErrors;
    public ulong ullBytesXmited;
    public ulong ullBytesRcved;
    public ulong ullFramesXmited;
    public ulong ullFramesRcved;
    public ulong ullBytesTxUncompressed;
    public ulong ullBytesTxCompressed;
    public ulong ullBytesRcvUncompressed;
    public ulong ullBytesRcvCompressed;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure RAS_PORT_2
    Public hPort As IntPtr
    Public hConnection As IntPtr
    Public dwConn_State As UInteger
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=17)> Public wszPortName As String
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=17)> Public wszMediaName As String
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=129)> Public wszDeviceName As String
    <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=17)> Public wszDeviceType As String
    Public dwHardwareCondition As Integer
    Public dwLineSpeed As UInteger
    Public dwCrcErr As UInteger
    Public dwSerialOverRunErrs As UInteger
    Public dwTimeoutErr As UInteger
    Public dwAlignmentErr As UInteger
    Public dwHardwareOverrunErr As UInteger
    Public dwFramingErr As UInteger
    Public dwBufferOverrunErr As UInteger
    Public dwCompressionRatioIn As UInteger
    Public dwCompressionRatioOut As UInteger
    Public dwTotalErrors As UInteger
    Public ullBytesXmited As ULong
    Public ullBytesRcved As ULong
    Public ullFramesXmited As ULong
    Public ullFramesRcved As ULong
    Public ullBytesTxUncompressed As ULong
    Public ullBytesTxCompressed As ULong
    Public ullBytesRcvUncompressed As ULong
    Public ullBytesRcvCompressed As ULong
End Structure
import ctypes
from ctypes import wintypes

class RAS_PORT_2(ctypes.Structure):
    _fields_ = [
        ("hPort", ctypes.c_void_p),
        ("hConnection", ctypes.c_void_p),
        ("dwConn_State", wintypes.DWORD),
        ("wszPortName", ctypes.c_wchar * 17),
        ("wszMediaName", ctypes.c_wchar * 17),
        ("wszDeviceName", ctypes.c_wchar * 129),
        ("wszDeviceType", ctypes.c_wchar * 17),
        ("dwHardwareCondition", ctypes.c_int),
        ("dwLineSpeed", wintypes.DWORD),
        ("dwCrcErr", wintypes.DWORD),
        ("dwSerialOverRunErrs", wintypes.DWORD),
        ("dwTimeoutErr", wintypes.DWORD),
        ("dwAlignmentErr", wintypes.DWORD),
        ("dwHardwareOverrunErr", wintypes.DWORD),
        ("dwFramingErr", wintypes.DWORD),
        ("dwBufferOverrunErr", wintypes.DWORD),
        ("dwCompressionRatioIn", wintypes.DWORD),
        ("dwCompressionRatioOut", wintypes.DWORD),
        ("dwTotalErrors", wintypes.DWORD),
        ("ullBytesXmited", ctypes.c_ulonglong),
        ("ullBytesRcved", ctypes.c_ulonglong),
        ("ullFramesXmited", ctypes.c_ulonglong),
        ("ullFramesRcved", ctypes.c_ulonglong),
        ("ullBytesTxUncompressed", ctypes.c_ulonglong),
        ("ullBytesTxCompressed", ctypes.c_ulonglong),
        ("ullBytesRcvUncompressed", ctypes.c_ulonglong),
        ("ullBytesRcvCompressed", ctypes.c_ulonglong),
    ]
#[repr(C)]
pub struct RAS_PORT_2 {
    pub hPort: *mut core::ffi::c_void,
    pub hConnection: *mut core::ffi::c_void,
    pub dwConn_State: u32,
    pub wszPortName: [u16; 17],
    pub wszMediaName: [u16; 17],
    pub wszDeviceName: [u16; 129],
    pub wszDeviceType: [u16; 17],
    pub dwHardwareCondition: i32,
    pub dwLineSpeed: u32,
    pub dwCrcErr: u32,
    pub dwSerialOverRunErrs: u32,
    pub dwTimeoutErr: u32,
    pub dwAlignmentErr: u32,
    pub dwHardwareOverrunErr: u32,
    pub dwFramingErr: u32,
    pub dwBufferOverrunErr: u32,
    pub dwCompressionRatioIn: u32,
    pub dwCompressionRatioOut: u32,
    pub dwTotalErrors: u32,
    pub ullBytesXmited: u64,
    pub ullBytesRcved: u64,
    pub ullFramesXmited: u64,
    pub ullFramesRcved: u64,
    pub ullBytesTxUncompressed: u64,
    pub ullBytesTxCompressed: u64,
    pub ullBytesRcvUncompressed: u64,
    pub ullBytesRcvCompressed: u64,
}
import "golang.org/x/sys/windows"

type RAS_PORT_2 struct {
	hPort uintptr
	hConnection uintptr
	dwConn_State uint32
	wszPortName [17]uint16
	wszMediaName [17]uint16
	wszDeviceName [129]uint16
	wszDeviceType [17]uint16
	dwHardwareCondition int32
	dwLineSpeed uint32
	dwCrcErr uint32
	dwSerialOverRunErrs uint32
	dwTimeoutErr uint32
	dwAlignmentErr uint32
	dwHardwareOverrunErr uint32
	dwFramingErr uint32
	dwBufferOverrunErr uint32
	dwCompressionRatioIn uint32
	dwCompressionRatioOut uint32
	dwTotalErrors uint32
	ullBytesXmited uint64
	ullBytesRcved uint64
	ullFramesXmited uint64
	ullFramesRcved uint64
	ullBytesTxUncompressed uint64
	ullBytesTxCompressed uint64
	ullBytesRcvUncompressed uint64
	ullBytesRcvCompressed uint64
}
type
  RAS_PORT_2 = record
    hPort: Pointer;
    hConnection: Pointer;
    dwConn_State: DWORD;
    wszPortName: array[0..16] of WideChar;
    wszMediaName: array[0..16] of WideChar;
    wszDeviceName: array[0..128] of WideChar;
    wszDeviceType: array[0..16] of WideChar;
    dwHardwareCondition: Integer;
    dwLineSpeed: DWORD;
    dwCrcErr: DWORD;
    dwSerialOverRunErrs: DWORD;
    dwTimeoutErr: DWORD;
    dwAlignmentErr: DWORD;
    dwHardwareOverrunErr: DWORD;
    dwFramingErr: DWORD;
    dwBufferOverrunErr: DWORD;
    dwCompressionRatioIn: DWORD;
    dwCompressionRatioOut: DWORD;
    dwTotalErrors: DWORD;
    ullBytesXmited: UInt64;
    ullBytesRcved: UInt64;
    ullFramesXmited: UInt64;
    ullFramesRcved: UInt64;
    ullBytesTxUncompressed: UInt64;
    ullBytesTxCompressed: UInt64;
    ullBytesRcvUncompressed: UInt64;
    ullBytesRcvCompressed: UInt64;
  end;
const RAS_PORT_2 = extern struct {
    hPort: ?*anyopaque,
    hConnection: ?*anyopaque,
    dwConn_State: u32,
    wszPortName: [17]u16,
    wszMediaName: [17]u16,
    wszDeviceName: [129]u16,
    wszDeviceType: [17]u16,
    dwHardwareCondition: i32,
    dwLineSpeed: u32,
    dwCrcErr: u32,
    dwSerialOverRunErrs: u32,
    dwTimeoutErr: u32,
    dwAlignmentErr: u32,
    dwHardwareOverrunErr: u32,
    dwFramingErr: u32,
    dwBufferOverrunErr: u32,
    dwCompressionRatioIn: u32,
    dwCompressionRatioOut: u32,
    dwTotalErrors: u32,
    ullBytesXmited: u64,
    ullBytesRcved: u64,
    ullFramesXmited: u64,
    ullFramesRcved: u64,
    ullBytesTxUncompressed: u64,
    ullBytesTxCompressed: u64,
    ullBytesRcvUncompressed: u64,
    ullBytesRcvCompressed: u64,
};
type
  RAS_PORT_2 {.bycopy.} = object
    hPort: pointer
    hConnection: pointer
    dwConn_State: uint32
    wszPortName: array[17, uint16]
    wszMediaName: array[17, uint16]
    wszDeviceName: array[129, uint16]
    wszDeviceType: array[17, uint16]
    dwHardwareCondition: int32
    dwLineSpeed: uint32
    dwCrcErr: uint32
    dwSerialOverRunErrs: uint32
    dwTimeoutErr: uint32
    dwAlignmentErr: uint32
    dwHardwareOverrunErr: uint32
    dwFramingErr: uint32
    dwBufferOverrunErr: uint32
    dwCompressionRatioIn: uint32
    dwCompressionRatioOut: uint32
    dwTotalErrors: uint32
    ullBytesXmited: uint64
    ullBytesRcved: uint64
    ullFramesXmited: uint64
    ullFramesRcved: uint64
    ullBytesTxUncompressed: uint64
    ullBytesTxCompressed: uint64
    ullBytesRcvUncompressed: uint64
    ullBytesRcvCompressed: uint64
struct RAS_PORT_2
{
    void* hPort;
    void* hConnection;
    uint dwConn_State;
    wchar[17] wszPortName;
    wchar[17] wszMediaName;
    wchar[129] wszDeviceName;
    wchar[17] wszDeviceType;
    int dwHardwareCondition;
    uint dwLineSpeed;
    uint dwCrcErr;
    uint dwSerialOverRunErrs;
    uint dwTimeoutErr;
    uint dwAlignmentErr;
    uint dwHardwareOverrunErr;
    uint dwFramingErr;
    uint dwBufferOverrunErr;
    uint dwCompressionRatioIn;
    uint dwCompressionRatioOut;
    uint dwTotalErrors;
    ulong ullBytesXmited;
    ulong ullBytesRcved;
    ulong ullFramesXmited;
    ulong ullFramesRcved;
    ulong ullBytesTxUncompressed;
    ulong ullBytesTxCompressed;
    ulong ullBytesRcvUncompressed;
    ulong ullBytesRcvCompressed;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; RAS_PORT_2 サイズ: 488 バイト(x86)
dim st, 122    ; 4byte整数×122(構造体サイズ 488 / 4 切り上げ)
; hPort : HANDLE (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; hConnection : HANDLE (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; dwConn_State : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; wszPortName : WCHAR (+12, 34byte)  varptr(st)+12 を基点に操作(34byte:入れ子/配列)
; wszMediaName : WCHAR (+46, 34byte)  varptr(st)+46 を基点に操作(34byte:入れ子/配列)
; wszDeviceName : WCHAR (+80, 258byte)  varptr(st)+80 を基点に操作(258byte:入れ子/配列)
; wszDeviceType : WCHAR (+338, 34byte)  varptr(st)+338 を基点に操作(34byte:入れ子/配列)
; dwHardwareCondition : RAS_HARDWARE_CONDITION (+372, 4byte)  st.93 = 値  /  値 = st.93   (lpoke/lpeek も可)
; dwLineSpeed : DWORD (+376, 4byte)  st.94 = 値  /  値 = st.94   (lpoke/lpeek も可)
; dwCrcErr : DWORD (+380, 4byte)  st.95 = 値  /  値 = st.95   (lpoke/lpeek も可)
; dwSerialOverRunErrs : DWORD (+384, 4byte)  st.96 = 値  /  値 = st.96   (lpoke/lpeek も可)
; dwTimeoutErr : DWORD (+388, 4byte)  st.97 = 値  /  値 = st.97   (lpoke/lpeek も可)
; dwAlignmentErr : DWORD (+392, 4byte)  st.98 = 値  /  値 = st.98   (lpoke/lpeek も可)
; dwHardwareOverrunErr : DWORD (+396, 4byte)  st.99 = 値  /  値 = st.99   (lpoke/lpeek も可)
; dwFramingErr : DWORD (+400, 4byte)  st.100 = 値  /  値 = st.100   (lpoke/lpeek も可)
; dwBufferOverrunErr : DWORD (+404, 4byte)  st.101 = 値  /  値 = st.101   (lpoke/lpeek も可)
; dwCompressionRatioIn : DWORD (+408, 4byte)  st.102 = 値  /  値 = st.102   (lpoke/lpeek も可)
; dwCompressionRatioOut : DWORD (+412, 4byte)  st.103 = 値  /  値 = st.103   (lpoke/lpeek も可)
; dwTotalErrors : DWORD (+416, 4byte)  st.104 = 値  /  値 = st.104   (lpoke/lpeek も可)
; ullBytesXmited : ULONGLONG (+424, 8byte)  qpoke st,424,値 / qpeek(st,424)  ※IronHSPのみ。3.7/3.8は lpoke st,424,下位 : lpoke st,428,上位
; ullBytesRcved : ULONGLONG (+432, 8byte)  qpoke st,432,値 / qpeek(st,432)  ※IronHSPのみ。3.7/3.8は lpoke st,432,下位 : lpoke st,436,上位
; ullFramesXmited : ULONGLONG (+440, 8byte)  qpoke st,440,値 / qpeek(st,440)  ※IronHSPのみ。3.7/3.8は lpoke st,440,下位 : lpoke st,444,上位
; ullFramesRcved : ULONGLONG (+448, 8byte)  qpoke st,448,値 / qpeek(st,448)  ※IronHSPのみ。3.7/3.8は lpoke st,448,下位 : lpoke st,452,上位
; ullBytesTxUncompressed : ULONGLONG (+456, 8byte)  qpoke st,456,値 / qpeek(st,456)  ※IronHSPのみ。3.7/3.8は lpoke st,456,下位 : lpoke st,460,上位
; ullBytesTxCompressed : ULONGLONG (+464, 8byte)  qpoke st,464,値 / qpeek(st,464)  ※IronHSPのみ。3.7/3.8は lpoke st,464,下位 : lpoke st,468,上位
; ullBytesRcvUncompressed : ULONGLONG (+472, 8byte)  qpoke st,472,値 / qpeek(st,472)  ※IronHSPのみ。3.7/3.8は lpoke st,472,下位 : lpoke st,476,上位
; ullBytesRcvCompressed : ULONGLONG (+480, 8byte)  qpoke st,480,値 / qpeek(st,480)  ※IronHSPのみ。3.7/3.8は lpoke st,480,下位 : lpoke st,484,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; RAS_PORT_2 サイズ: 496 バイト(x64)
dim st, 124    ; 4byte整数×124(構造体サイズ 496 / 4 切り上げ)
; hPort : HANDLE (+0, 8byte)  qpoke st,0,値 / qpeek(st,0)  ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; hConnection : HANDLE (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; dwConn_State : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; wszPortName : WCHAR (+20, 34byte)  varptr(st)+20 を基点に操作(34byte:入れ子/配列)
; wszMediaName : WCHAR (+54, 34byte)  varptr(st)+54 を基点に操作(34byte:入れ子/配列)
; wszDeviceName : WCHAR (+88, 258byte)  varptr(st)+88 を基点に操作(258byte:入れ子/配列)
; wszDeviceType : WCHAR (+346, 34byte)  varptr(st)+346 を基点に操作(34byte:入れ子/配列)
; dwHardwareCondition : RAS_HARDWARE_CONDITION (+380, 4byte)  st.95 = 値  /  値 = st.95   (lpoke/lpeek も可)
; dwLineSpeed : DWORD (+384, 4byte)  st.96 = 値  /  値 = st.96   (lpoke/lpeek も可)
; dwCrcErr : DWORD (+388, 4byte)  st.97 = 値  /  値 = st.97   (lpoke/lpeek も可)
; dwSerialOverRunErrs : DWORD (+392, 4byte)  st.98 = 値  /  値 = st.98   (lpoke/lpeek も可)
; dwTimeoutErr : DWORD (+396, 4byte)  st.99 = 値  /  値 = st.99   (lpoke/lpeek も可)
; dwAlignmentErr : DWORD (+400, 4byte)  st.100 = 値  /  値 = st.100   (lpoke/lpeek も可)
; dwHardwareOverrunErr : DWORD (+404, 4byte)  st.101 = 値  /  値 = st.101   (lpoke/lpeek も可)
; dwFramingErr : DWORD (+408, 4byte)  st.102 = 値  /  値 = st.102   (lpoke/lpeek も可)
; dwBufferOverrunErr : DWORD (+412, 4byte)  st.103 = 値  /  値 = st.103   (lpoke/lpeek も可)
; dwCompressionRatioIn : DWORD (+416, 4byte)  st.104 = 値  /  値 = st.104   (lpoke/lpeek も可)
; dwCompressionRatioOut : DWORD (+420, 4byte)  st.105 = 値  /  値 = st.105   (lpoke/lpeek も可)
; dwTotalErrors : DWORD (+424, 4byte)  st.106 = 値  /  値 = st.106   (lpoke/lpeek も可)
; ullBytesXmited : ULONGLONG (+432, 8byte)  qpoke st,432,値 / qpeek(st,432)  ※IronHSPのみ。3.7/3.8は lpoke st,432,下位 : lpoke st,436,上位
; ullBytesRcved : ULONGLONG (+440, 8byte)  qpoke st,440,値 / qpeek(st,440)  ※IronHSPのみ。3.7/3.8は lpoke st,440,下位 : lpoke st,444,上位
; ullFramesXmited : ULONGLONG (+448, 8byte)  qpoke st,448,値 / qpeek(st,448)  ※IronHSPのみ。3.7/3.8は lpoke st,448,下位 : lpoke st,452,上位
; ullFramesRcved : ULONGLONG (+456, 8byte)  qpoke st,456,値 / qpeek(st,456)  ※IronHSPのみ。3.7/3.8は lpoke st,456,下位 : lpoke st,460,上位
; ullBytesTxUncompressed : ULONGLONG (+464, 8byte)  qpoke st,464,値 / qpeek(st,464)  ※IronHSPのみ。3.7/3.8は lpoke st,464,下位 : lpoke st,468,上位
; ullBytesTxCompressed : ULONGLONG (+472, 8byte)  qpoke st,472,値 / qpeek(st,472)  ※IronHSPのみ。3.7/3.8は lpoke st,472,下位 : lpoke st,476,上位
; ullBytesRcvUncompressed : ULONGLONG (+480, 8byte)  qpoke st,480,値 / qpeek(st,480)  ※IronHSPのみ。3.7/3.8は lpoke st,480,下位 : lpoke st,484,上位
; ullBytesRcvCompressed : ULONGLONG (+488, 8byte)  qpoke st,488,値 / qpeek(st,488)  ※IronHSPのみ。3.7/3.8は lpoke st,488,下位 : lpoke st,492,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global RAS_PORT_2
    #field intptr hPort
    #field intptr hConnection
    #field int dwConn_State
    #field wchar wszPortName 17
    #field wchar wszMediaName 17
    #field wchar wszDeviceName 129
    #field wchar wszDeviceType 17
    #field int dwHardwareCondition
    #field int dwLineSpeed
    #field int dwCrcErr
    #field int dwSerialOverRunErrs
    #field int dwTimeoutErr
    #field int dwAlignmentErr
    #field int dwHardwareOverrunErr
    #field int dwFramingErr
    #field int dwBufferOverrunErr
    #field int dwCompressionRatioIn
    #field int dwCompressionRatioOut
    #field int dwTotalErrors
    #field int64 ullBytesXmited
    #field int64 ullBytesRcved
    #field int64 ullFramesXmited
    #field int64 ullFramesRcved
    #field int64 ullBytesTxUncompressed
    #field int64 ullBytesTxCompressed
    #field int64 ullBytesRcvUncompressed
    #field int64 ullBytesRcvCompressed
#endstruct

stdim st, RAS_PORT_2        ; NSTRUCT 変数を確保
st->dwConn_State = 100
mes "dwConn_State=" + st->dwConn_State