Win32 API 日本語リファレンス
ホームSecurity.ExtensibleAuthenticationProtocol › EAP_AUTHENTICATOR_METHOD_ROUTINES

EAP_AUTHENTICATOR_METHOD_ROUTINES

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

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

フィールド

フィールドサイズx64x86説明
dwSizeInBytesDWORD4+0+0

実装者が定義する構造体のバージョンです。

注意  このフィールドの値は Microsoft によって定義されていません。
 
pEapTypeEAP_METHOD_TYPE*8/4+8+4この構造体のメンバーが指す API の実装者に関するベンダー情報を格納する EAP_METHOD_TYPE 構造体へのポインターです。
EapMethodAuthenticatorInitializeINT_PTR8/4+16+8

EapMethodAuthenticatorInitialize への関数ポインターです。

pEapType

このセッションで使用する EAP 認証の種類を指定する EAP_METHOD_TYPE 列挙値です。

ppEapError

この関数呼び出しの実行中に EAPHost が発生させたエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapPeerFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorBeginSessionINT_PTR8/4+24+12

EapMethodAuthenticatorBeginSession への関数ポインターです。

dwFlags

EAP 認証セッションの動作を表す EAP フラグ の組み合わせです。

pwszIdentity

認証するユーザーの ID を格納する、0 で終わる Unicode 文字列です。

pAttributeArray

認証するエンティティの EAP 属性を指定する EapAttributes 配列構造体へのポインターです。

dwSizeOfConnectionData

pConnectionData で指定された接続データ バッファーのサイズをバイト単位で指定します。

pConnectionData

不透明な構成データ BLOB を格納するバイト バッファーへのポインターです。

dwMaxSendPacketSize

セッション中に送信される EAP パケットの最大サイズをバイト単位で指定します。

pSessionHandle

サーバー EAPHost 上の新しい EAP 認証セッションの一意の ID を格納する EAP_SESSION_HANDLE 構造体へのポインターを受け取ります。

ppEapError

この関数呼び出しの実行中に EAPHost が発生させたエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapPeerFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorUpdateInnerMethodParamsINT_PTR8/4+32+16

EapMethodAuthenticatorUpdateInnerMethodParams への関数ポインターです。

sessionHandle

サーバー EAPHost 上の EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

dwFlags

EAP 認証セッションの動作を表す EAP フラグ の組み合わせです。

pwszIdentity

認証するユーザーの更新された ID を格納する、0 で終わる Unicode 文字列です。

pAttributeArray

認証するエンティティの更新された EAP 属性を指定する EapAttributes 配列構造体へのポインターです。

ppEapError

この関数呼び出しの実行中に発生したエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorReceivePacketINT_PTR8/4+40+20

EapMethodAuthenticatorReceivePacket への関数ポインターです。

sessionHandle

サーバー EAPHost 上の EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

cbReceivePacket

pReceivePacket のサイズ (バイト単位) です。

pReceivePacket

サーバー EAPHost がサプリカントから受信した EAP 認証セッション パケットを格納する EapPacket 構造体へのポインターです。

pEapOutput

EAP 認証セッションでサプリカントが次に実行する必要があるアクションを示す EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION 列挙値へのポインターを受け取ります。

ppEapError

この関数呼び出しの実行中に EAPHost が発生させたエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorSendPacketINT_PTR8/4+48+24

EapMethodAuthenticatorSendPacket への関数ポインターです。

sessionHandle

サーバー EAPHost 上の EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

bPacketId

送信するパケットの数値 ID 値を指定します。

pcbSendPacket

送信するパケットの最大サイズをバイト単位で指定します。戻り時には、このパラメーターは pEapPacket で返されたパケットのサイズをバイト単位で受け取ります。

pSendPacket

サプリカントに送信するパケットを格納する EapPacket 構造体へのポインターを受け取ります。

pTimeout

パケットのタイムアウトを指定する EAP_AUTHENTICATOR_SEND_TIMEOUT 値へのポインターを受け取ります。

ppEapError

この関数呼び出しの実行中に発生したエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorGetAttributesINT_PTR8/4+56+28

EapMethodAuthenticatorGetAttributes への関数ポインターです。

sessionHandle

サーバー EAPHost 上の EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

pAttribs

サプリカントの EAP 認証応答属性の配列を格納する EapAttributes 構造体へのポインターを受け取ります。

ppEapError

この関数呼び出しの実行中に発生したエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorSetAttributesINT_PTR8/4+64+32

EapMethodAuthenticatorSetAttributes への関数ポインターです。

sessionHandle

サーバー EAPHost 上の EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

pAttribs

EAPHost 上のサプリカントに設定する新しい EAP 認証応答属性の配列を格納する EapAttributes 構造体へのポインターです。

pEapOutput

更新された属性への応答としてサプリカントが実行すべき推奨アクションを指定する EAP_METHOD_AUTHENTICATOR_RESPONSE_ACTION 列挙値へのポインターを受け取ります。

ppEapError

この関数呼び出しの実行中に発生したエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorGetResultINT_PTR8/4+72+36

EapMethodAuthenticatorGetResult への関数ポインターです。

sessionHandle

サーバー EAPHost 上の EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

pResult

認証結果を格納する EAP_METHOD_AUTHENTICATOR_RESULT 構造体へのポインターを受け取ります。

ppEapError

この関数呼び出しの実行中に EAPHost が発生させたエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorEndSessionINT_PTR8/4+80+40

EapMethodAuthenticatorEndSession への関数ポインターです。

sessionHandle

サーバー EAPHost 上で終了する EAP 認証セッションに対する固有のハンドルを格納する EAP_SESSION_HANDLE 値です。このハンドルは、事前に EapMethodAuthenticatorBeginSession を呼び出すことで取得します。

ppEapError

この関数呼び出しの実行中に EAPHost が発生させたエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

EapMethodAuthenticatorShutdownINT_PTR8/4+88+44

EapMethodAuthenticatorShutdown への関数ポインターです。

pEapType

セッションで使用された EAP 認証の種類を指定する EAP_METHOD_TYPE 列挙値です。

ppEapError

この関数呼び出しの実行中に発生したエラーを格納する EAP_ERROR 構造体のアドレスへのポインターです。エラー データを使用した後は、エラー データへのポインターを EapMethodAuthenticatorFreeErrorMemory に渡してこのメモリを解放する必要があります。

公式ドキュメント

EAPHost オーセンティケーター メソッド API への関数ポインターのセットを格納します。

解説(Remarks)

すべての EAP オーセンティケーター メソッド DLL は、次の API のパブリックな実装を備えている必要があります。

これらの API は、オーセンティケーター (サーバー) EAPHost がピア (クライアント) EAP メソッドから対応する特定のリモート プロシージャ コールを受信したときに、EAP オーセンティケーター メソッドに対して呼び出されます。EAP ピア メソッドと EAP オーセンティケーター メソッドの間に完全な 1 対 1 の対応関係が存在するわけではない点に注意してください。特定の EAP オーセンティケーター メソッド API の呼び出しは、EAP オーセンティケーター メソッド API 呼び出しの実装の要件に基づいて行う必要があります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// EAP_AUTHENTICATOR_METHOD_ROUTINES  (x64 96 / x86 48 バイト)
typedef struct EAP_AUTHENTICATOR_METHOD_ROUTINES {
    DWORD dwSizeInBytes;
    EAP_METHOD_TYPE* pEapType;
    INT_PTR EapMethodAuthenticatorInitialize;
    INT_PTR EapMethodAuthenticatorBeginSession;
    INT_PTR EapMethodAuthenticatorUpdateInnerMethodParams;
    INT_PTR EapMethodAuthenticatorReceivePacket;
    INT_PTR EapMethodAuthenticatorSendPacket;
    INT_PTR EapMethodAuthenticatorGetAttributes;
    INT_PTR EapMethodAuthenticatorSetAttributes;
    INT_PTR EapMethodAuthenticatorGetResult;
    INT_PTR EapMethodAuthenticatorEndSession;
    INT_PTR EapMethodAuthenticatorShutdown;
} EAP_AUTHENTICATOR_METHOD_ROUTINES;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct EAP_AUTHENTICATOR_METHOD_ROUTINES
{
    public uint dwSizeInBytes;
    public IntPtr pEapType;
    public IntPtr EapMethodAuthenticatorInitialize;
    public IntPtr EapMethodAuthenticatorBeginSession;
    public IntPtr EapMethodAuthenticatorUpdateInnerMethodParams;
    public IntPtr EapMethodAuthenticatorReceivePacket;
    public IntPtr EapMethodAuthenticatorSendPacket;
    public IntPtr EapMethodAuthenticatorGetAttributes;
    public IntPtr EapMethodAuthenticatorSetAttributes;
    public IntPtr EapMethodAuthenticatorGetResult;
    public IntPtr EapMethodAuthenticatorEndSession;
    public IntPtr EapMethodAuthenticatorShutdown;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure EAP_AUTHENTICATOR_METHOD_ROUTINES
    Public dwSizeInBytes As UInteger
    Public pEapType As IntPtr
    Public EapMethodAuthenticatorInitialize As IntPtr
    Public EapMethodAuthenticatorBeginSession As IntPtr
    Public EapMethodAuthenticatorUpdateInnerMethodParams As IntPtr
    Public EapMethodAuthenticatorReceivePacket As IntPtr
    Public EapMethodAuthenticatorSendPacket As IntPtr
    Public EapMethodAuthenticatorGetAttributes As IntPtr
    Public EapMethodAuthenticatorSetAttributes As IntPtr
    Public EapMethodAuthenticatorGetResult As IntPtr
    Public EapMethodAuthenticatorEndSession As IntPtr
    Public EapMethodAuthenticatorShutdown As IntPtr
End Structure
import ctypes
from ctypes import wintypes

class EAP_AUTHENTICATOR_METHOD_ROUTINES(ctypes.Structure):
    _fields_ = [
        ("dwSizeInBytes", wintypes.DWORD),
        ("pEapType", ctypes.c_void_p),
        ("EapMethodAuthenticatorInitialize", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorBeginSession", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorUpdateInnerMethodParams", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorReceivePacket", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorSendPacket", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorGetAttributes", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorSetAttributes", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorGetResult", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorEndSession", ctypes.c_ssize_t),
        ("EapMethodAuthenticatorShutdown", ctypes.c_ssize_t),
    ]
#[repr(C)]
pub struct EAP_AUTHENTICATOR_METHOD_ROUTINES {
    pub dwSizeInBytes: u32,
    pub pEapType: *mut core::ffi::c_void,
    pub EapMethodAuthenticatorInitialize: isize,
    pub EapMethodAuthenticatorBeginSession: isize,
    pub EapMethodAuthenticatorUpdateInnerMethodParams: isize,
    pub EapMethodAuthenticatorReceivePacket: isize,
    pub EapMethodAuthenticatorSendPacket: isize,
    pub EapMethodAuthenticatorGetAttributes: isize,
    pub EapMethodAuthenticatorSetAttributes: isize,
    pub EapMethodAuthenticatorGetResult: isize,
    pub EapMethodAuthenticatorEndSession: isize,
    pub EapMethodAuthenticatorShutdown: isize,
}
import "golang.org/x/sys/windows"

type EAP_AUTHENTICATOR_METHOD_ROUTINES struct {
	dwSizeInBytes uint32
	pEapType uintptr
	EapMethodAuthenticatorInitialize uintptr
	EapMethodAuthenticatorBeginSession uintptr
	EapMethodAuthenticatorUpdateInnerMethodParams uintptr
	EapMethodAuthenticatorReceivePacket uintptr
	EapMethodAuthenticatorSendPacket uintptr
	EapMethodAuthenticatorGetAttributes uintptr
	EapMethodAuthenticatorSetAttributes uintptr
	EapMethodAuthenticatorGetResult uintptr
	EapMethodAuthenticatorEndSession uintptr
	EapMethodAuthenticatorShutdown uintptr
}
type
  EAP_AUTHENTICATOR_METHOD_ROUTINES = record
    dwSizeInBytes: DWORD;
    pEapType: Pointer;
    EapMethodAuthenticatorInitialize: NativeInt;
    EapMethodAuthenticatorBeginSession: NativeInt;
    EapMethodAuthenticatorUpdateInnerMethodParams: NativeInt;
    EapMethodAuthenticatorReceivePacket: NativeInt;
    EapMethodAuthenticatorSendPacket: NativeInt;
    EapMethodAuthenticatorGetAttributes: NativeInt;
    EapMethodAuthenticatorSetAttributes: NativeInt;
    EapMethodAuthenticatorGetResult: NativeInt;
    EapMethodAuthenticatorEndSession: NativeInt;
    EapMethodAuthenticatorShutdown: NativeInt;
  end;
const EAP_AUTHENTICATOR_METHOD_ROUTINES = extern struct {
    dwSizeInBytes: u32,
    pEapType: ?*anyopaque,
    EapMethodAuthenticatorInitialize: isize,
    EapMethodAuthenticatorBeginSession: isize,
    EapMethodAuthenticatorUpdateInnerMethodParams: isize,
    EapMethodAuthenticatorReceivePacket: isize,
    EapMethodAuthenticatorSendPacket: isize,
    EapMethodAuthenticatorGetAttributes: isize,
    EapMethodAuthenticatorSetAttributes: isize,
    EapMethodAuthenticatorGetResult: isize,
    EapMethodAuthenticatorEndSession: isize,
    EapMethodAuthenticatorShutdown: isize,
};
type
  EAP_AUTHENTICATOR_METHOD_ROUTINES {.bycopy.} = object
    dwSizeInBytes: uint32
    pEapType: pointer
    EapMethodAuthenticatorInitialize: int
    EapMethodAuthenticatorBeginSession: int
    EapMethodAuthenticatorUpdateInnerMethodParams: int
    EapMethodAuthenticatorReceivePacket: int
    EapMethodAuthenticatorSendPacket: int
    EapMethodAuthenticatorGetAttributes: int
    EapMethodAuthenticatorSetAttributes: int
    EapMethodAuthenticatorGetResult: int
    EapMethodAuthenticatorEndSession: int
    EapMethodAuthenticatorShutdown: int
struct EAP_AUTHENTICATOR_METHOD_ROUTINES
{
    uint dwSizeInBytes;
    void* pEapType;
    ptrdiff_t EapMethodAuthenticatorInitialize;
    ptrdiff_t EapMethodAuthenticatorBeginSession;
    ptrdiff_t EapMethodAuthenticatorUpdateInnerMethodParams;
    ptrdiff_t EapMethodAuthenticatorReceivePacket;
    ptrdiff_t EapMethodAuthenticatorSendPacket;
    ptrdiff_t EapMethodAuthenticatorGetAttributes;
    ptrdiff_t EapMethodAuthenticatorSetAttributes;
    ptrdiff_t EapMethodAuthenticatorGetResult;
    ptrdiff_t EapMethodAuthenticatorEndSession;
    ptrdiff_t EapMethodAuthenticatorShutdown;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; EAP_AUTHENTICATOR_METHOD_ROUTINES サイズ: 48 バイト(x86)
dim st, 12    ; 4byte整数×12(構造体サイズ 48 / 4 切り上げ)
; dwSizeInBytes : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; pEapType : EAP_METHOD_TYPE* (+4, 4byte)  varptr(st)+4 を基点に操作(4byte:入れ子/配列)
; EapMethodAuthenticatorInitialize : INT_PTR (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; EapMethodAuthenticatorBeginSession : INT_PTR (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; EapMethodAuthenticatorUpdateInnerMethodParams : INT_PTR (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; EapMethodAuthenticatorReceivePacket : INT_PTR (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; EapMethodAuthenticatorSendPacket : INT_PTR (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; EapMethodAuthenticatorGetAttributes : INT_PTR (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; EapMethodAuthenticatorSetAttributes : INT_PTR (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; EapMethodAuthenticatorGetResult : INT_PTR (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; EapMethodAuthenticatorEndSession : INT_PTR (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; EapMethodAuthenticatorShutdown : INT_PTR (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; EAP_AUTHENTICATOR_METHOD_ROUTINES サイズ: 96 バイト(x64)
dim st, 24    ; 4byte整数×24(構造体サイズ 96 / 4 切り上げ)
; dwSizeInBytes : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; pEapType : EAP_METHOD_TYPE* (+8, 8byte)  varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; EapMethodAuthenticatorInitialize : INT_PTR (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; EapMethodAuthenticatorBeginSession : INT_PTR (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; EapMethodAuthenticatorUpdateInnerMethodParams : INT_PTR (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; EapMethodAuthenticatorReceivePacket : INT_PTR (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; EapMethodAuthenticatorSendPacket : INT_PTR (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; EapMethodAuthenticatorGetAttributes : INT_PTR (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; EapMethodAuthenticatorSetAttributes : INT_PTR (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; EapMethodAuthenticatorGetResult : INT_PTR (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; EapMethodAuthenticatorEndSession : INT_PTR (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; EapMethodAuthenticatorShutdown : INT_PTR (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global EAP_AUTHENTICATOR_METHOD_ROUTINES
    #field int dwSizeInBytes
    #field intptr pEapType
    #field intptr EapMethodAuthenticatorInitialize
    #field intptr EapMethodAuthenticatorBeginSession
    #field intptr EapMethodAuthenticatorUpdateInnerMethodParams
    #field intptr EapMethodAuthenticatorReceivePacket
    #field intptr EapMethodAuthenticatorSendPacket
    #field intptr EapMethodAuthenticatorGetAttributes
    #field intptr EapMethodAuthenticatorSetAttributes
    #field intptr EapMethodAuthenticatorGetResult
    #field intptr EapMethodAuthenticatorEndSession
    #field intptr EapMethodAuthenticatorShutdown
#endstruct

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