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

DOT11_OPERATION_MODE_CAPABILITY

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

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

フィールド

フィールドサイズx64x86説明
uReservedDWORD4+0+0予約フィールド。ゼロを設定する。
uMajorVersionDWORD4+4+4動作モード機能仕様のメジャーバージョンを表す。
uMinorVersionDWORD4+8+8動作モード機能仕様のマイナーバージョンを表す。
uNumOfTXBuffersDWORD4+12+12ドライバが対応する送信バッファ数を表す。
uNumOfRXBuffersDWORD4+16+16ドライバが対応する受信バッファ数を表す。
uOpModeCapabilityDWORD4+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 Structure
import 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: uint32
struct 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