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