ホーム › NetworkManagement.WiFi › DOT11EXT_APIS
DOT11EXT_APIS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Dot11ExtAllocateBuffer | DOT11EXT_ALLOCATE_BUFFER | 8/4 | +0 | +0 | オペレーティングシステムにバッファ確保を依頼するコールバック関数ポインター。 |
| Dot11ExtFreeBuffer | DOT11EXT_FREE_BUFFER | 8/4 | +8 | +4 | 確保済みバッファを解放するコールバック関数ポインター。 |
| Dot11ExtSetProfileCustomUserData | DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA | 8/4 | +16 | +8 | プロファイルにカスタムユーザーデータを設定するコールバック。 |
| Dot11ExtGetProfileCustomUserData | DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA | 8/4 | +24 | +12 | プロファイルのカスタムユーザーデータを取得するコールバック。 |
| Dot11ExtSetCurrentProfile | DOT11EXT_SET_CURRENT_PROFILE | 8/4 | +32 | +16 | 現在のプロファイルを設定するコールバック関数ポインター。 |
| Dot11ExtSendUIRequest | DOT11EXT_SEND_UI_REQUEST | 8/4 | +40 | +20 | UI要求を送信するコールバック関数ポインター。 |
| Dot11ExtPreAssociateCompletion | DOT11EXT_PRE_ASSOCIATE_COMPLETION | 8/4 | +48 | +24 | 関連付け前処理の完了を通知するコールバック。 |
| Dot11ExtPostAssociateCompletion | DOT11EXT_POST_ASSOCIATE_COMPLETION | 8/4 | +56 | +28 | 関連付け後処理の完了を通知するコールバック。 |
| Dot11ExtSendNotification | DOT11EXT_SEND_NOTIFICATION | 8/4 | +64 | +32 | 通知を送出するコールバック関数ポインター。 |
| Dot11ExtSendPacket | DOT11EXT_SEND_PACKET | 8/4 | +72 | +36 | パケット送信を要求するコールバック関数ポインター。 |
| Dot11ExtSetEtherTypeHandling | DOT11EXT_SET_ETHERTYPE_HANDLING | 8/4 | +80 | +40 | 指定EtherTypeの処理方法を設定するコールバック。 |
| Dot11ExtSetAuthAlgorithm | DOT11EXT_SET_AUTH_ALGORITHM | 8/4 | +88 | +44 | 認証アルゴリズムを設定するコールバック関数ポインター。 |
| Dot11ExtSetUnicastCipherAlgorithm | DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM | 8/4 | +96 | +48 | ユニキャスト暗号アルゴリズムを設定するコールバック。 |
| Dot11ExtSetMulticastCipherAlgorithm | DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM | 8/4 | +104 | +52 | マルチキャスト暗号アルゴリズムを設定するコールバック。 |
| Dot11ExtSetDefaultKey | DOT11EXT_SET_DEFAULT_KEY | 8/4 | +112 | +56 | デフォルト鍵を設定するコールバック関数ポインター。 |
| Dot11ExtSetKeyMappingKey | DOT11EXT_SET_KEY_MAPPING_KEY | 8/4 | +120 | +60 | キーマッピング鍵を設定するコールバック関数ポインター。 |
| Dot11ExtSetDefaultKeyId | DOT11EXT_SET_DEFAULT_KEY_ID | 8/4 | +128 | +64 | デフォルト鍵IDを設定するコールバック関数ポインター。 |
| Dot11ExtNicSpecificExtension | DOT11EXT_NIC_SPECIFIC_EXTENSION | 8/4 | +136 | +68 | NIC固有拡張を呼び出すコールバック関数ポインター。 |
| Dot11ExtSetExcludeUnencrypted | DOT11EXT_SET_EXCLUDE_UNENCRYPTED | 8/4 | +144 | +72 | 非暗号化フレームの除外設定を行うコールバック。 |
| Dot11ExtStartOneX | DOT11EXT_ONEX_START | 8/4 | +152 | +76 | 802.1X認証を開始するコールバック関数ポインター。 |
| Dot11ExtStopOneX | DOT11EXT_ONEX_STOP | 8/4 | +160 | +80 | 802.1X認証を停止するコールバック関数ポインター。 |
| Dot11ExtProcessSecurityPacket | DOT11EXT_PROCESS_ONEX_PACKET | 8/4 | +168 | +84 | 受信した1Xセキュリティパケットを処理するコールバック。 |
各言語での定義
#include <windows.h>
// DOT11EXT_APIS (x64 176 / x86 88 バイト)
typedef struct DOT11EXT_APIS {
DOT11EXT_ALLOCATE_BUFFER Dot11ExtAllocateBuffer;
DOT11EXT_FREE_BUFFER Dot11ExtFreeBuffer;
DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA Dot11ExtSetProfileCustomUserData;
DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA Dot11ExtGetProfileCustomUserData;
DOT11EXT_SET_CURRENT_PROFILE Dot11ExtSetCurrentProfile;
DOT11EXT_SEND_UI_REQUEST Dot11ExtSendUIRequest;
DOT11EXT_PRE_ASSOCIATE_COMPLETION Dot11ExtPreAssociateCompletion;
DOT11EXT_POST_ASSOCIATE_COMPLETION Dot11ExtPostAssociateCompletion;
DOT11EXT_SEND_NOTIFICATION Dot11ExtSendNotification;
DOT11EXT_SEND_PACKET Dot11ExtSendPacket;
DOT11EXT_SET_ETHERTYPE_HANDLING Dot11ExtSetEtherTypeHandling;
DOT11EXT_SET_AUTH_ALGORITHM Dot11ExtSetAuthAlgorithm;
DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM Dot11ExtSetUnicastCipherAlgorithm;
DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM Dot11ExtSetMulticastCipherAlgorithm;
DOT11EXT_SET_DEFAULT_KEY Dot11ExtSetDefaultKey;
DOT11EXT_SET_KEY_MAPPING_KEY Dot11ExtSetKeyMappingKey;
DOT11EXT_SET_DEFAULT_KEY_ID Dot11ExtSetDefaultKeyId;
DOT11EXT_NIC_SPECIFIC_EXTENSION Dot11ExtNicSpecificExtension;
DOT11EXT_SET_EXCLUDE_UNENCRYPTED Dot11ExtSetExcludeUnencrypted;
DOT11EXT_ONEX_START Dot11ExtStartOneX;
DOT11EXT_ONEX_STOP Dot11ExtStopOneX;
DOT11EXT_PROCESS_ONEX_PACKET Dot11ExtProcessSecurityPacket;
} DOT11EXT_APIS;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DOT11EXT_APIS
{
public IntPtr Dot11ExtAllocateBuffer;
public IntPtr Dot11ExtFreeBuffer;
public IntPtr Dot11ExtSetProfileCustomUserData;
public IntPtr Dot11ExtGetProfileCustomUserData;
public IntPtr Dot11ExtSetCurrentProfile;
public IntPtr Dot11ExtSendUIRequest;
public IntPtr Dot11ExtPreAssociateCompletion;
public IntPtr Dot11ExtPostAssociateCompletion;
public IntPtr Dot11ExtSendNotification;
public IntPtr Dot11ExtSendPacket;
public IntPtr Dot11ExtSetEtherTypeHandling;
public IntPtr Dot11ExtSetAuthAlgorithm;
public IntPtr Dot11ExtSetUnicastCipherAlgorithm;
public IntPtr Dot11ExtSetMulticastCipherAlgorithm;
public IntPtr Dot11ExtSetDefaultKey;
public IntPtr Dot11ExtSetKeyMappingKey;
public IntPtr Dot11ExtSetDefaultKeyId;
public IntPtr Dot11ExtNicSpecificExtension;
public IntPtr Dot11ExtSetExcludeUnencrypted;
public IntPtr Dot11ExtStartOneX;
public IntPtr Dot11ExtStopOneX;
public IntPtr Dot11ExtProcessSecurityPacket;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DOT11EXT_APIS
Public Dot11ExtAllocateBuffer As IntPtr
Public Dot11ExtFreeBuffer As IntPtr
Public Dot11ExtSetProfileCustomUserData As IntPtr
Public Dot11ExtGetProfileCustomUserData As IntPtr
Public Dot11ExtSetCurrentProfile As IntPtr
Public Dot11ExtSendUIRequest As IntPtr
Public Dot11ExtPreAssociateCompletion As IntPtr
Public Dot11ExtPostAssociateCompletion As IntPtr
Public Dot11ExtSendNotification As IntPtr
Public Dot11ExtSendPacket As IntPtr
Public Dot11ExtSetEtherTypeHandling As IntPtr
Public Dot11ExtSetAuthAlgorithm As IntPtr
Public Dot11ExtSetUnicastCipherAlgorithm As IntPtr
Public Dot11ExtSetMulticastCipherAlgorithm As IntPtr
Public Dot11ExtSetDefaultKey As IntPtr
Public Dot11ExtSetKeyMappingKey As IntPtr
Public Dot11ExtSetDefaultKeyId As IntPtr
Public Dot11ExtNicSpecificExtension As IntPtr
Public Dot11ExtSetExcludeUnencrypted As IntPtr
Public Dot11ExtStartOneX As IntPtr
Public Dot11ExtStopOneX As IntPtr
Public Dot11ExtProcessSecurityPacket As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class DOT11EXT_APIS(ctypes.Structure):
_fields_ = [
("Dot11ExtAllocateBuffer", ctypes.c_void_p),
("Dot11ExtFreeBuffer", ctypes.c_void_p),
("Dot11ExtSetProfileCustomUserData", ctypes.c_void_p),
("Dot11ExtGetProfileCustomUserData", ctypes.c_void_p),
("Dot11ExtSetCurrentProfile", ctypes.c_void_p),
("Dot11ExtSendUIRequest", ctypes.c_void_p),
("Dot11ExtPreAssociateCompletion", ctypes.c_void_p),
("Dot11ExtPostAssociateCompletion", ctypes.c_void_p),
("Dot11ExtSendNotification", ctypes.c_void_p),
("Dot11ExtSendPacket", ctypes.c_void_p),
("Dot11ExtSetEtherTypeHandling", ctypes.c_void_p),
("Dot11ExtSetAuthAlgorithm", ctypes.c_void_p),
("Dot11ExtSetUnicastCipherAlgorithm", ctypes.c_void_p),
("Dot11ExtSetMulticastCipherAlgorithm", ctypes.c_void_p),
("Dot11ExtSetDefaultKey", ctypes.c_void_p),
("Dot11ExtSetKeyMappingKey", ctypes.c_void_p),
("Dot11ExtSetDefaultKeyId", ctypes.c_void_p),
("Dot11ExtNicSpecificExtension", ctypes.c_void_p),
("Dot11ExtSetExcludeUnencrypted", ctypes.c_void_p),
("Dot11ExtStartOneX", ctypes.c_void_p),
("Dot11ExtStopOneX", ctypes.c_void_p),
("Dot11ExtProcessSecurityPacket", ctypes.c_void_p),
]#[repr(C)]
pub struct DOT11EXT_APIS {
pub Dot11ExtAllocateBuffer: *mut core::ffi::c_void,
pub Dot11ExtFreeBuffer: *mut core::ffi::c_void,
pub Dot11ExtSetProfileCustomUserData: *mut core::ffi::c_void,
pub Dot11ExtGetProfileCustomUserData: *mut core::ffi::c_void,
pub Dot11ExtSetCurrentProfile: *mut core::ffi::c_void,
pub Dot11ExtSendUIRequest: *mut core::ffi::c_void,
pub Dot11ExtPreAssociateCompletion: *mut core::ffi::c_void,
pub Dot11ExtPostAssociateCompletion: *mut core::ffi::c_void,
pub Dot11ExtSendNotification: *mut core::ffi::c_void,
pub Dot11ExtSendPacket: *mut core::ffi::c_void,
pub Dot11ExtSetEtherTypeHandling: *mut core::ffi::c_void,
pub Dot11ExtSetAuthAlgorithm: *mut core::ffi::c_void,
pub Dot11ExtSetUnicastCipherAlgorithm: *mut core::ffi::c_void,
pub Dot11ExtSetMulticastCipherAlgorithm: *mut core::ffi::c_void,
pub Dot11ExtSetDefaultKey: *mut core::ffi::c_void,
pub Dot11ExtSetKeyMappingKey: *mut core::ffi::c_void,
pub Dot11ExtSetDefaultKeyId: *mut core::ffi::c_void,
pub Dot11ExtNicSpecificExtension: *mut core::ffi::c_void,
pub Dot11ExtSetExcludeUnencrypted: *mut core::ffi::c_void,
pub Dot11ExtStartOneX: *mut core::ffi::c_void,
pub Dot11ExtStopOneX: *mut core::ffi::c_void,
pub Dot11ExtProcessSecurityPacket: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type DOT11EXT_APIS struct {
Dot11ExtAllocateBuffer uintptr
Dot11ExtFreeBuffer uintptr
Dot11ExtSetProfileCustomUserData uintptr
Dot11ExtGetProfileCustomUserData uintptr
Dot11ExtSetCurrentProfile uintptr
Dot11ExtSendUIRequest uintptr
Dot11ExtPreAssociateCompletion uintptr
Dot11ExtPostAssociateCompletion uintptr
Dot11ExtSendNotification uintptr
Dot11ExtSendPacket uintptr
Dot11ExtSetEtherTypeHandling uintptr
Dot11ExtSetAuthAlgorithm uintptr
Dot11ExtSetUnicastCipherAlgorithm uintptr
Dot11ExtSetMulticastCipherAlgorithm uintptr
Dot11ExtSetDefaultKey uintptr
Dot11ExtSetKeyMappingKey uintptr
Dot11ExtSetDefaultKeyId uintptr
Dot11ExtNicSpecificExtension uintptr
Dot11ExtSetExcludeUnencrypted uintptr
Dot11ExtStartOneX uintptr
Dot11ExtStopOneX uintptr
Dot11ExtProcessSecurityPacket uintptr
}type
DOT11EXT_APIS = record
Dot11ExtAllocateBuffer: Pointer;
Dot11ExtFreeBuffer: Pointer;
Dot11ExtSetProfileCustomUserData: Pointer;
Dot11ExtGetProfileCustomUserData: Pointer;
Dot11ExtSetCurrentProfile: Pointer;
Dot11ExtSendUIRequest: Pointer;
Dot11ExtPreAssociateCompletion: Pointer;
Dot11ExtPostAssociateCompletion: Pointer;
Dot11ExtSendNotification: Pointer;
Dot11ExtSendPacket: Pointer;
Dot11ExtSetEtherTypeHandling: Pointer;
Dot11ExtSetAuthAlgorithm: Pointer;
Dot11ExtSetUnicastCipherAlgorithm: Pointer;
Dot11ExtSetMulticastCipherAlgorithm: Pointer;
Dot11ExtSetDefaultKey: Pointer;
Dot11ExtSetKeyMappingKey: Pointer;
Dot11ExtSetDefaultKeyId: Pointer;
Dot11ExtNicSpecificExtension: Pointer;
Dot11ExtSetExcludeUnencrypted: Pointer;
Dot11ExtStartOneX: Pointer;
Dot11ExtStopOneX: Pointer;
Dot11ExtProcessSecurityPacket: Pointer;
end;const DOT11EXT_APIS = extern struct {
Dot11ExtAllocateBuffer: ?*anyopaque,
Dot11ExtFreeBuffer: ?*anyopaque,
Dot11ExtSetProfileCustomUserData: ?*anyopaque,
Dot11ExtGetProfileCustomUserData: ?*anyopaque,
Dot11ExtSetCurrentProfile: ?*anyopaque,
Dot11ExtSendUIRequest: ?*anyopaque,
Dot11ExtPreAssociateCompletion: ?*anyopaque,
Dot11ExtPostAssociateCompletion: ?*anyopaque,
Dot11ExtSendNotification: ?*anyopaque,
Dot11ExtSendPacket: ?*anyopaque,
Dot11ExtSetEtherTypeHandling: ?*anyopaque,
Dot11ExtSetAuthAlgorithm: ?*anyopaque,
Dot11ExtSetUnicastCipherAlgorithm: ?*anyopaque,
Dot11ExtSetMulticastCipherAlgorithm: ?*anyopaque,
Dot11ExtSetDefaultKey: ?*anyopaque,
Dot11ExtSetKeyMappingKey: ?*anyopaque,
Dot11ExtSetDefaultKeyId: ?*anyopaque,
Dot11ExtNicSpecificExtension: ?*anyopaque,
Dot11ExtSetExcludeUnencrypted: ?*anyopaque,
Dot11ExtStartOneX: ?*anyopaque,
Dot11ExtStopOneX: ?*anyopaque,
Dot11ExtProcessSecurityPacket: ?*anyopaque,
};type
DOT11EXT_APIS {.bycopy.} = object
Dot11ExtAllocateBuffer: pointer
Dot11ExtFreeBuffer: pointer
Dot11ExtSetProfileCustomUserData: pointer
Dot11ExtGetProfileCustomUserData: pointer
Dot11ExtSetCurrentProfile: pointer
Dot11ExtSendUIRequest: pointer
Dot11ExtPreAssociateCompletion: pointer
Dot11ExtPostAssociateCompletion: pointer
Dot11ExtSendNotification: pointer
Dot11ExtSendPacket: pointer
Dot11ExtSetEtherTypeHandling: pointer
Dot11ExtSetAuthAlgorithm: pointer
Dot11ExtSetUnicastCipherAlgorithm: pointer
Dot11ExtSetMulticastCipherAlgorithm: pointer
Dot11ExtSetDefaultKey: pointer
Dot11ExtSetKeyMappingKey: pointer
Dot11ExtSetDefaultKeyId: pointer
Dot11ExtNicSpecificExtension: pointer
Dot11ExtSetExcludeUnencrypted: pointer
Dot11ExtStartOneX: pointer
Dot11ExtStopOneX: pointer
Dot11ExtProcessSecurityPacket: pointerstruct DOT11EXT_APIS
{
void* Dot11ExtAllocateBuffer;
void* Dot11ExtFreeBuffer;
void* Dot11ExtSetProfileCustomUserData;
void* Dot11ExtGetProfileCustomUserData;
void* Dot11ExtSetCurrentProfile;
void* Dot11ExtSendUIRequest;
void* Dot11ExtPreAssociateCompletion;
void* Dot11ExtPostAssociateCompletion;
void* Dot11ExtSendNotification;
void* Dot11ExtSendPacket;
void* Dot11ExtSetEtherTypeHandling;
void* Dot11ExtSetAuthAlgorithm;
void* Dot11ExtSetUnicastCipherAlgorithm;
void* Dot11ExtSetMulticastCipherAlgorithm;
void* Dot11ExtSetDefaultKey;
void* Dot11ExtSetKeyMappingKey;
void* Dot11ExtSetDefaultKeyId;
void* Dot11ExtNicSpecificExtension;
void* Dot11ExtSetExcludeUnencrypted;
void* Dot11ExtStartOneX;
void* Dot11ExtStopOneX;
void* Dot11ExtProcessSecurityPacket;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DOT11EXT_APIS サイズ: 88 バイト(x86)
dim st, 22 ; 4byte整数×22(構造体サイズ 88 / 4 切り上げ)
; Dot11ExtAllocateBuffer : DOT11EXT_ALLOCATE_BUFFER (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; Dot11ExtFreeBuffer : DOT11EXT_FREE_BUFFER (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; Dot11ExtSetProfileCustomUserData : DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; Dot11ExtGetProfileCustomUserData : DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; Dot11ExtSetCurrentProfile : DOT11EXT_SET_CURRENT_PROFILE (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; Dot11ExtSendUIRequest : DOT11EXT_SEND_UI_REQUEST (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; Dot11ExtPreAssociateCompletion : DOT11EXT_PRE_ASSOCIATE_COMPLETION (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; Dot11ExtPostAssociateCompletion : DOT11EXT_POST_ASSOCIATE_COMPLETION (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; Dot11ExtSendNotification : DOT11EXT_SEND_NOTIFICATION (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; Dot11ExtSendPacket : DOT11EXT_SEND_PACKET (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; Dot11ExtSetEtherTypeHandling : DOT11EXT_SET_ETHERTYPE_HANDLING (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; Dot11ExtSetAuthAlgorithm : DOT11EXT_SET_AUTH_ALGORITHM (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; Dot11ExtSetUnicastCipherAlgorithm : DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; Dot11ExtSetMulticastCipherAlgorithm : DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; Dot11ExtSetDefaultKey : DOT11EXT_SET_DEFAULT_KEY (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; Dot11ExtSetKeyMappingKey : DOT11EXT_SET_KEY_MAPPING_KEY (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; Dot11ExtSetDefaultKeyId : DOT11EXT_SET_DEFAULT_KEY_ID (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; Dot11ExtNicSpecificExtension : DOT11EXT_NIC_SPECIFIC_EXTENSION (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; Dot11ExtSetExcludeUnencrypted : DOT11EXT_SET_EXCLUDE_UNENCRYPTED (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; Dot11ExtStartOneX : DOT11EXT_ONEX_START (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; Dot11ExtStopOneX : DOT11EXT_ONEX_STOP (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; Dot11ExtProcessSecurityPacket : DOT11EXT_PROCESS_ONEX_PACKET (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DOT11EXT_APIS サイズ: 176 バイト(x64)
dim st, 44 ; 4byte整数×44(構造体サイズ 176 / 4 切り上げ)
; Dot11ExtAllocateBuffer : DOT11EXT_ALLOCATE_BUFFER (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; Dot11ExtFreeBuffer : DOT11EXT_FREE_BUFFER (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; Dot11ExtSetProfileCustomUserData : DOT11EXT_SET_PROFILE_CUSTOM_USER_DATA (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; Dot11ExtGetProfileCustomUserData : DOT11EXT_GET_PROFILE_CUSTOM_USER_DATA (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; Dot11ExtSetCurrentProfile : DOT11EXT_SET_CURRENT_PROFILE (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; Dot11ExtSendUIRequest : DOT11EXT_SEND_UI_REQUEST (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; Dot11ExtPreAssociateCompletion : DOT11EXT_PRE_ASSOCIATE_COMPLETION (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; Dot11ExtPostAssociateCompletion : DOT11EXT_POST_ASSOCIATE_COMPLETION (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; Dot11ExtSendNotification : DOT11EXT_SEND_NOTIFICATION (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; Dot11ExtSendPacket : DOT11EXT_SEND_PACKET (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; Dot11ExtSetEtherTypeHandling : DOT11EXT_SET_ETHERTYPE_HANDLING (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; Dot11ExtSetAuthAlgorithm : DOT11EXT_SET_AUTH_ALGORITHM (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; Dot11ExtSetUnicastCipherAlgorithm : DOT11EXT_SET_UNICAST_CIPHER_ALGORITHM (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; Dot11ExtSetMulticastCipherAlgorithm : DOT11EXT_SET_MULTICAST_CIPHER_ALGORITHM (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; Dot11ExtSetDefaultKey : DOT11EXT_SET_DEFAULT_KEY (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; Dot11ExtSetKeyMappingKey : DOT11EXT_SET_KEY_MAPPING_KEY (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; Dot11ExtSetDefaultKeyId : DOT11EXT_SET_DEFAULT_KEY_ID (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; Dot11ExtNicSpecificExtension : DOT11EXT_NIC_SPECIFIC_EXTENSION (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; Dot11ExtSetExcludeUnencrypted : DOT11EXT_SET_EXCLUDE_UNENCRYPTED (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; Dot11ExtStartOneX : DOT11EXT_ONEX_START (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; Dot11ExtStopOneX : DOT11EXT_ONEX_STOP (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; Dot11ExtProcessSecurityPacket : DOT11EXT_PROCESS_ONEX_PACKET (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DOT11EXT_APIS
#field intptr Dot11ExtAllocateBuffer
#field intptr Dot11ExtFreeBuffer
#field intptr Dot11ExtSetProfileCustomUserData
#field intptr Dot11ExtGetProfileCustomUserData
#field intptr Dot11ExtSetCurrentProfile
#field intptr Dot11ExtSendUIRequest
#field intptr Dot11ExtPreAssociateCompletion
#field intptr Dot11ExtPostAssociateCompletion
#field intptr Dot11ExtSendNotification
#field intptr Dot11ExtSendPacket
#field intptr Dot11ExtSetEtherTypeHandling
#field intptr Dot11ExtSetAuthAlgorithm
#field intptr Dot11ExtSetUnicastCipherAlgorithm
#field intptr Dot11ExtSetMulticastCipherAlgorithm
#field intptr Dot11ExtSetDefaultKey
#field intptr Dot11ExtSetKeyMappingKey
#field intptr Dot11ExtSetDefaultKeyId
#field intptr Dot11ExtNicSpecificExtension
#field intptr Dot11ExtSetExcludeUnencrypted
#field intptr Dot11ExtStartOneX
#field intptr Dot11ExtStopOneX
#field intptr Dot11ExtProcessSecurityPacket
#endstruct
stdim st, DOT11EXT_APIS ; NSTRUCT 変数を確保