ホーム › NetworkManagement.WiFi › DOT11_OFFLOAD_CAPABILITY
DOT11_OFFLOAD_CAPABILITY
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| uReserved | DWORD | 4 | +0 | +0 | 予約フィールド。ゼロを設定する。 |
| uFlags | DWORD | 4 | +4 | +4 | オフロード機能のフラグビットを表す。 |
| uSupportedWEPAlgorithms | DWORD | 4 | +8 | +8 | オフロード対応する WEP アルゴリズムのビットマスク。 |
| uNumOfReplayWindows | DWORD | 4 | +12 | +12 | 対応するリプレイウィンドウの数を表す。 |
| uMaxWEPKeyMappingLength | DWORD | 4 | +16 | +16 | WEP 鍵マッピング表の最大長を表す。 |
| uSupportedAuthAlgorithms | DWORD | 4 | +20 | +20 | 対応する認証アルゴリズムのビットマスク。 |
| uMaxAuthKeyMappingLength | DWORD | 4 | +24 | +24 | 認証鍵マッピング表の最大長を表す。 |
各言語での定義
#include <windows.h>
// DOT11_OFFLOAD_CAPABILITY (x64 28 / x86 28 バイト)
typedef struct DOT11_OFFLOAD_CAPABILITY {
DWORD uReserved;
DWORD uFlags;
DWORD uSupportedWEPAlgorithms;
DWORD uNumOfReplayWindows;
DWORD uMaxWEPKeyMappingLength;
DWORD uSupportedAuthAlgorithms;
DWORD uMaxAuthKeyMappingLength;
} DOT11_OFFLOAD_CAPABILITY;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DOT11_OFFLOAD_CAPABILITY
{
public uint uReserved;
public uint uFlags;
public uint uSupportedWEPAlgorithms;
public uint uNumOfReplayWindows;
public uint uMaxWEPKeyMappingLength;
public uint uSupportedAuthAlgorithms;
public uint uMaxAuthKeyMappingLength;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DOT11_OFFLOAD_CAPABILITY
Public uReserved As UInteger
Public uFlags As UInteger
Public uSupportedWEPAlgorithms As UInteger
Public uNumOfReplayWindows As UInteger
Public uMaxWEPKeyMappingLength As UInteger
Public uSupportedAuthAlgorithms As UInteger
Public uMaxAuthKeyMappingLength As UInteger
End Structureimport ctypes
from ctypes import wintypes
class DOT11_OFFLOAD_CAPABILITY(ctypes.Structure):
_fields_ = [
("uReserved", wintypes.DWORD),
("uFlags", wintypes.DWORD),
("uSupportedWEPAlgorithms", wintypes.DWORD),
("uNumOfReplayWindows", wintypes.DWORD),
("uMaxWEPKeyMappingLength", wintypes.DWORD),
("uSupportedAuthAlgorithms", wintypes.DWORD),
("uMaxAuthKeyMappingLength", wintypes.DWORD),
]#[repr(C)]
pub struct DOT11_OFFLOAD_CAPABILITY {
pub uReserved: u32,
pub uFlags: u32,
pub uSupportedWEPAlgorithms: u32,
pub uNumOfReplayWindows: u32,
pub uMaxWEPKeyMappingLength: u32,
pub uSupportedAuthAlgorithms: u32,
pub uMaxAuthKeyMappingLength: u32,
}import "golang.org/x/sys/windows"
type DOT11_OFFLOAD_CAPABILITY struct {
uReserved uint32
uFlags uint32
uSupportedWEPAlgorithms uint32
uNumOfReplayWindows uint32
uMaxWEPKeyMappingLength uint32
uSupportedAuthAlgorithms uint32
uMaxAuthKeyMappingLength uint32
}type
DOT11_OFFLOAD_CAPABILITY = record
uReserved: DWORD;
uFlags: DWORD;
uSupportedWEPAlgorithms: DWORD;
uNumOfReplayWindows: DWORD;
uMaxWEPKeyMappingLength: DWORD;
uSupportedAuthAlgorithms: DWORD;
uMaxAuthKeyMappingLength: DWORD;
end;const DOT11_OFFLOAD_CAPABILITY = extern struct {
uReserved: u32,
uFlags: u32,
uSupportedWEPAlgorithms: u32,
uNumOfReplayWindows: u32,
uMaxWEPKeyMappingLength: u32,
uSupportedAuthAlgorithms: u32,
uMaxAuthKeyMappingLength: u32,
};type
DOT11_OFFLOAD_CAPABILITY {.bycopy.} = object
uReserved: uint32
uFlags: uint32
uSupportedWEPAlgorithms: uint32
uNumOfReplayWindows: uint32
uMaxWEPKeyMappingLength: uint32
uSupportedAuthAlgorithms: uint32
uMaxAuthKeyMappingLength: uint32struct DOT11_OFFLOAD_CAPABILITY
{
uint uReserved;
uint uFlags;
uint uSupportedWEPAlgorithms;
uint uNumOfReplayWindows;
uint uMaxWEPKeyMappingLength;
uint uSupportedAuthAlgorithms;
uint uMaxAuthKeyMappingLength;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DOT11_OFFLOAD_CAPABILITY サイズ: 28 バイト(x64)
dim st, 7 ; 4byte整数×7(構造体サイズ 28 / 4 切り上げ)
; uReserved : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; uFlags : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; uSupportedWEPAlgorithms : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; uNumOfReplayWindows : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; uMaxWEPKeyMappingLength : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; uSupportedAuthAlgorithms : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; uMaxAuthKeyMappingLength : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DOT11_OFFLOAD_CAPABILITY
#field int uReserved
#field int uFlags
#field int uSupportedWEPAlgorithms
#field int uNumOfReplayWindows
#field int uMaxWEPKeyMappingLength
#field int uSupportedAuthAlgorithms
#field int uMaxAuthKeyMappingLength
#endstruct
stdim st, DOT11_OFFLOAD_CAPABILITY ; NSTRUCT 変数を確保
st->uReserved = 100
mes "uReserved=" + st->uReserved