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

WLAN_CONNECTION_PARAMETERS

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

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

フィールド

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

接続のモードを指定する WLAN_CONNECTION_MODE 値です。

Windows XP with SP3 and Wireless LAN API for Windows XP with SP2: wlan_connection_mode_profile 値のみがサポートされます。

strProfileLPWSTR8/4+8+4

接続に使用されるプロファイルを指定します。

wlanConnectionModewlan_connection_mode_profile に設定されている場合、strProfile は接続に使用されるプロファイルの名前を指定します。wlanConnectionModewlan_connection_mode_temporary_profile に設定されている場合、strProfile は接続に使用されるプロファイルの XML 表現を指定します。wlanConnectionModewlan_connection_mode_discovery_secure または wlan_connection_mode_discovery_unsecure に設定されている場合、strProfileNULL に設定してください。

Windows XP with SP3 and Wireless LAN API for Windows XP with SP2: プロファイルは Wireless Profile Compatibility で説明されている互換性の条件を満たしていなければなりません。

pDot11SsidDOT11_SSID*8/4+16+8接続先ネットワークの SSID を指定する DOT11_SSID 構造体へのポインターです。 このパラメーターは省略可能です。NULL に設定した場合、プロファイル内のすべての SSID が試行されます。 WLAN_CONNECTION_MODEwlan_connection_mode_discovery_secure または wlan_connection_mode_discovery_unsecure に設定されている場合、このパラメーターを NULL にすることはできません。
pDesiredBssidListDOT11_BSSID_LIST*8/4+24+12

接続に使用する基本サービスセット (BSS) 識別子の一覧を格納した DOT11_BSSID_LIST 構造体へのポインターです。

Windows XP with SP3 and Wireless LAN API for Windows XP with SP2: このメンバーは NULL でなければなりません。

dot11BssTypeDOT11_BSS_TYPE4+32+16ネットワークの BSS 種別を示す DOT11_BSS_TYPE 値です。 プロファイルを指定する場合、この BSS 種別はプロファイル内のものと同じでなければなりません。
dwFlagsDWORD4+36+20

次の表は、接続パラメーターの指定に使用するフラグを示しています。

定数 説明
WLAN_CONNECTION_HIDDEN_NETWORK 0x00000001 接続先が非表示ネットワークであっても、その接続先ネットワークに接続します。非表示ネットワークは SSID をブロードキャストしません。接続先ネットワークがアドホック ネットワークの場合は、このフラグを使用しないでください。strProfile で指定したプロファイルが NULL でない場合、このフラグは無視され、nonBroadcast プロファイル要素によって非表示ネットワークに接続するかどうかが決まります。
WLAN_CONNECTION_ADHOC_JOIN_ONLY 0x00000002 アドホック ネットワークを形成しません。アドホック ネットワークが既に存在する場合にのみ参加します。接続先ネットワークがインフラストラクチャ ネットワークの場合は、このフラグを使用しないでください。
WLAN_CONNECTION_IGNORE_PRIVACY_BIT 0x00000004 ネットワークへの接続時にプライバシー ビットを無視します。プライバシー ビットを無視すると、パケットが暗号化されているかどうか、および使用される暗号化方式が無視されます。このフラグは、一時プロファイルを使用してインフラストラクチャ ネットワークに接続する場合にのみ使用してください。
WLAN_CONNECTION_EAPOL_PASSTHROUGH 0x00000008 EAPOL トラフィックを暗号化および復号化の対象から除外します。このフラグは、Open 認証と WEP 暗号化を使用するインフラストラクチャ ネットワーク上で、アプリケーションが EAPOL トラフィックを送信する必要がある場合に使用します。802.1X 認証を必要とするネットワークへの接続には、このフラグを使用してはなりません。このフラグは、wlanConnectionModewlan_connection_mode_temporary_profile に設定されている場合にのみ有効です。可能な限りこのフラグの使用は避けてください。
WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE 0x00000010 接続が正常に完了した時点で、探索プロファイルを自動的に永続化します。 このフラグは wlan_connection_mode_discovery_secure または wlan_connection_mode_discovery_unsecure の場合にのみ有効です。プロファイルは全ユーザー用プロファイルとして、 WlanUtf8SsidToDisplayName を使用して SSID から生成された名前で保存されます。 同じ名前のプロファイルが既に存在する場合は、プロファイル名の末尾に数字が 付加されます。WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_CONNECTION_MODE_AUTO も併せて指定されていない限り、 プロファイルは手動接続モードで保存されます。
WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_CONNECTION_MODE_AUTO 0x00000020 WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE と組み合わせて使用します。 探索プロファイルは自動接続モードで永続化されます。
WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE_OVERWRITE_EXISTING 0x00000040 WLAN_CONNECTION_PERSIST_DISCOVERY_PROFILE と組み合わせて使用します。 探索プロファイルが永続化され、同じ名前の既存のプロファイルの上書きが試行されます。

Windows XP with SP3 and Wireless LAN API for Windows XP with SP2: このメンバーは 0 に設定しなければなりません。

公式ドキュメント

WLAN_CONNECTION_PARAMETERS 構造体は、WlanConnect 関数を使用する際に指定されるパラメーターを指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// WLAN_CONNECTION_PARAMETERS  (x64 40 / x86 24 バイト)
typedef struct WLAN_CONNECTION_PARAMETERS {
    WLAN_CONNECTION_MODE wlanConnectionMode;
    LPWSTR strProfile;
    DOT11_SSID* pDot11Ssid;
    DOT11_BSSID_LIST* pDesiredBssidList;
    DOT11_BSS_TYPE dot11BssType;
    DWORD dwFlags;
} WLAN_CONNECTION_PARAMETERS;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct WLAN_CONNECTION_PARAMETERS
{
    public int wlanConnectionMode;
    public IntPtr strProfile;
    public IntPtr pDot11Ssid;
    public IntPtr pDesiredBssidList;
    public int dot11BssType;
    public uint dwFlags;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure WLAN_CONNECTION_PARAMETERS
    Public wlanConnectionMode As Integer
    Public strProfile As IntPtr
    Public pDot11Ssid As IntPtr
    Public pDesiredBssidList As IntPtr
    Public dot11BssType As Integer
    Public dwFlags As UInteger
End Structure
import ctypes
from ctypes import wintypes

class WLAN_CONNECTION_PARAMETERS(ctypes.Structure):
    _fields_ = [
        ("wlanConnectionMode", ctypes.c_int),
        ("strProfile", ctypes.c_void_p),
        ("pDot11Ssid", ctypes.c_void_p),
        ("pDesiredBssidList", ctypes.c_void_p),
        ("dot11BssType", ctypes.c_int),
        ("dwFlags", wintypes.DWORD),
    ]
#[repr(C)]
pub struct WLAN_CONNECTION_PARAMETERS {
    pub wlanConnectionMode: i32,
    pub strProfile: *mut core::ffi::c_void,
    pub pDot11Ssid: *mut core::ffi::c_void,
    pub pDesiredBssidList: *mut core::ffi::c_void,
    pub dot11BssType: i32,
    pub dwFlags: u32,
}
import "golang.org/x/sys/windows"

type WLAN_CONNECTION_PARAMETERS struct {
	wlanConnectionMode int32
	strProfile uintptr
	pDot11Ssid uintptr
	pDesiredBssidList uintptr
	dot11BssType int32
	dwFlags uint32
}
type
  WLAN_CONNECTION_PARAMETERS = record
    wlanConnectionMode: Integer;
    strProfile: Pointer;
    pDot11Ssid: Pointer;
    pDesiredBssidList: Pointer;
    dot11BssType: Integer;
    dwFlags: DWORD;
  end;
const WLAN_CONNECTION_PARAMETERS = extern struct {
    wlanConnectionMode: i32,
    strProfile: ?*anyopaque,
    pDot11Ssid: ?*anyopaque,
    pDesiredBssidList: ?*anyopaque,
    dot11BssType: i32,
    dwFlags: u32,
};
type
  WLAN_CONNECTION_PARAMETERS {.bycopy.} = object
    wlanConnectionMode: int32
    strProfile: pointer
    pDot11Ssid: pointer
    pDesiredBssidList: pointer
    dot11BssType: int32
    dwFlags: uint32
struct WLAN_CONNECTION_PARAMETERS
{
    int wlanConnectionMode;
    void* strProfile;
    void* pDot11Ssid;
    void* pDesiredBssidList;
    int dot11BssType;
    uint dwFlags;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; WLAN_CONNECTION_PARAMETERS サイズ: 24 バイト(x86)
dim st, 6    ; 4byte整数×6(構造体サイズ 24 / 4 切り上げ)
; wlanConnectionMode : WLAN_CONNECTION_MODE (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; strProfile : LPWSTR (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; pDot11Ssid : DOT11_SSID* (+8, 4byte)  varptr(st)+8 を基点に操作(4byte:入れ子/配列)
; pDesiredBssidList : DOT11_BSSID_LIST* (+12, 4byte)  varptr(st)+12 を基点に操作(4byte:入れ子/配列)
; dot11BssType : DOT11_BSS_TYPE (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; dwFlags : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; WLAN_CONNECTION_PARAMETERS サイズ: 40 バイト(x64)
dim st, 10    ; 4byte整数×10(構造体サイズ 40 / 4 切り上げ)
; wlanConnectionMode : WLAN_CONNECTION_MODE (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; strProfile : LPWSTR (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; pDot11Ssid : DOT11_SSID* (+16, 8byte)  varptr(st)+16 を基点に操作(8byte:入れ子/配列)
; pDesiredBssidList : DOT11_BSSID_LIST* (+24, 8byte)  varptr(st)+24 を基点に操作(8byte:入れ子/配列)
; dot11BssType : DOT11_BSS_TYPE (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; dwFlags : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global WLAN_CONNECTION_PARAMETERS
    #field int wlanConnectionMode
    #field intptr strProfile
    #field intptr pDot11Ssid
    #field intptr pDesiredBssidList
    #field int dot11BssType
    #field int dwFlags
#endstruct

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